From 7d73a5dbd1900245e4e4d871fd08182a40eefdba Mon Sep 17 00:00:00 2001 From: clearbluejar <3752074+clearbluejar@users.noreply.github.com> Date: Fri, 2 Feb 2024 16:21:12 +0000 Subject: [PATCH] update docs with apple --- ...o.dylib-14.2.1-libcorecrypto.dylib-14.3.md | 6968 +++++++++++++++++ .../Diffing an iOS dylib - CVE-2024-23218.md | 38 + www/package-lock.json | 738 +- www/package.json | 14 +- www/static/img/corecypto.jpg | Bin 0 -> 242768 bytes 5 files changed, 7383 insertions(+), 375 deletions(-) create mode 100644 www/diffs/Samples/Mac/libcorecrypto.dylib-14.2.1-libcorecrypto.dylib-14.3.md create mode 100644 www/docs/guides/Diffing an iOS dylib - CVE-2024-23218.md create mode 100644 www/static/img/corecypto.jpg diff --git a/www/diffs/Samples/Mac/libcorecrypto.dylib-14.2.1-libcorecrypto.dylib-14.3.md b/www/diffs/Samples/Mac/libcorecrypto.dylib-14.2.1-libcorecrypto.dylib-14.3.md new file mode 100644 index 0000000..86d5ab6 --- /dev/null +++ b/www/diffs/Samples/Mac/libcorecrypto.dylib-14.2.1-libcorecrypto.dylib-14.3.md @@ -0,0 +1,6968 @@ +# libcorecrypto.dylib-14.2.1-libcorecrypto.dylib-14.3 Diff + +# TOC + +* [Visual Chart Diff](#visual-chart-diff) +* [Metadata](#metadata) + * [Ghidra Diff Engine](#ghidra-diff-engine) + * [Command Line](#command-line) + * [Binary Metadata Diff](#binary-metadata-diff) + * [Program Options](#program-options) + * [Diff Stats](#diff-stats) + * [Strings](#strings) +* [Deleted](#deleted) +* [Added](#added) + * [_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair_coins](#_pqclean_kyber_clean_crypto_kem_keypair_coins) + * [_PQCLEAN_KYBER_CLEAN_crypto_kem_enc_msg](#_pqclean_kyber_clean_crypto_kem_enc_msg) + * [_CCBFV_PARAM_CTX_INIT_WORKSPACE_N](#_ccbfv_param_ctx_init_workspace_n) + * [_cc_xor_safe](#_cc_xor_safe) + * [_ccrsa_eme_pkcs1v15_decode_safe_ws](#_ccrsa_eme_pkcs1v15_decode_safe_ws) + * [_ccrsa_eme_pkcs1v15_decode_safe](#_ccrsa_eme_pkcs1v15_decode_safe) + * [_CCBFV_DECRYPT_CTX_INIT_WORKSPACE_N](#_ccbfv_decrypt_ctx_init_workspace_n) +* [Modified](#modified) + * [_ccrsa_eme_pkcs1v15_decode](#_ccrsa_eme_pkcs1v15_decode) + * [_ccbfv_param_ctx_init](#_ccbfv_param_ctx_init) + * [_cckyber_polyvec_decompress](#_cckyber_polyvec_decompress) + * [_ccsha384_vng_arm_compress](#_ccsha384_vng_arm_compress) + * [_PQCLEAN_KYBER_CLEAN_indcpa_enc_ws](#_pqclean_kyber_clean_indcpa_enc_ws) + * [_ccrsa_decrypt_eme_pkcs1v15_blinded_ws](#_ccrsa_decrypt_eme_pkcs1v15_blinded_ws) + * [_cckyber_polyvec_compress](#_cckyber_polyvec_compress) + * [_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair](#_pqclean_kyber_clean_crypto_kem_keypair) + * [_ccsha512_256_vng_arm_compress](#_ccsha512_256_vng_arm_compress) + * [_ccrng_uniform](#_ccrng_uniform) + * [_ccsha512_vng_arm_compress](#_ccsha512_vng_arm_compress) + * [_PQCLEAN_KYBER_CLEAN_crypto_kem_enc](#_pqclean_kyber_clean_crypto_kem_enc) + * [_PQCLEAN_KYBER_CLEAN_indcpa_dec_ws](#_pqclean_kyber_clean_indcpa_dec_ws) +* [Modified (No Code Changes)](#modified-no-code-changes) + * [_CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N](#_ccbfv_cipher_plain_ctx_init_workspace_n) + * [_AccelerateCrypto_SHA512_compress](#_acceleratecrypto_sha512_compress) + * [_cc_clear](#_cc_clear) + * [_cckyber_poly_compress](#_cckyber_poly_compress) + * [_cc_ws_alloc](#_cc_ws_alloc) + * [_cckyber_poly_compress_d4](#_cckyber_poly_compress_d4) + * [_cckyber_poly_decompress](#_cckyber_poly_decompress) + * [_ccdrbg_init](#_ccdrbg_init) + * [_ccrng_drbg_init_withdrbg](#_ccrng_drbg_init_withdrbg) + * [_cc_ws_free](#_cc_ws_free) + * [_ccdrbg_factory_nisthmac](#_ccdrbg_factory_nisthmac) + * [_ccsha256_di](#_ccsha256_di) + * [_CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N](#_ccpolyzp_po2cyc_base_convert_init_workspace_n) + * [_cckyber_poly_decompress_d4](#_cckyber_poly_decompress_d4) + * [_AccelerateCrypto_SHA512_compress_hwassist](#_acceleratecrypto_sha512_compress_hwassist) + * [_cc_disable_dit](#_cc_disable_dit) + +# Visual Chart Diff + + + +```mermaid + +flowchart LR + +_ccrsa_eme_pkcs1v15_decode-0-old<--Match 65%-->_ccrsa_eme_pkcs1v15_decode-0-new +_ccbfv_param_ctx_init-0-old<--Match 85%-->_ccbfv_param_ctx_init-0-new +_cckyber_polyvec_decompress-0-old<--Match 81%-->_cckyber_polyvec_decompress-0-new +_ccsha384_vng_arm_compress-0-old<--Match 28%-->_ccsha384_vng_arm_compress-0-new +_PQCLEAN_KYBER_CLEAN_indcpa_enc_ws-0-old<--Match 78%-->_PQCLEAN_KYBER_CLEAN_indcpa_enc_ws-0-new +_ccrsa_decrypt_eme_pkcs1v15_blinded_ws-0-old<--Match 95%-->_ccrsa_decrypt_eme_pkcs1v15_blinded_ws-0-new +_cckyber_polyvec_compress-0-old<--Match 81%-->_cckyber_polyvec_compress-0-new +_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair-0-old<--Match 69%-->_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair-0-new +_ccsha512_256_vng_arm_compress-0-old<--Match 28%-->_ccsha512_256_vng_arm_compress-0-new +_ccrng_uniform-0-old<--Match 97%-->_ccrng_uniform-0-new +_ccsha512_vng_arm_compress-0-old<--Match 28%-->_ccsha512_vng_arm_compress-0-new +_PQCLEAN_KYBER_CLEAN_crypto_kem_enc-0-old<--Match 76%-->_PQCLEAN_KYBER_CLEAN_crypto_kem_enc-0-new +_PQCLEAN_KYBER_CLEAN_indcpa_dec_ws-0-old<--Match 92%-->_PQCLEAN_KYBER_CLEAN_indcpa_dec_ws-0-new + +subgraph libcorecrypto.dylib-14.3 + _ccrsa_eme_pkcs1v15_decode-0-new +_ccbfv_param_ctx_init-0-new +_cckyber_polyvec_decompress-0-new +_ccsha384_vng_arm_compress-0-new +_PQCLEAN_KYBER_CLEAN_indcpa_enc_ws-0-new +_ccrsa_decrypt_eme_pkcs1v15_blinded_ws-0-new +_cckyber_polyvec_compress-0-new +_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair-0-new +_ccsha512_256_vng_arm_compress-0-new +_ccrng_uniform-0-new +_ccsha512_vng_arm_compress-0-new +_PQCLEAN_KYBER_CLEAN_crypto_kem_enc-0-new +_PQCLEAN_KYBER_CLEAN_indcpa_dec_ws-0-new + subgraph Added +direction LR +_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair_coins + _PQCLEAN_KYBER_CLEAN_crypto_kem_enc_msg + _CCBFV_PARAM_CTX_INIT_WORKSPACE_N + _cc_xor_safe + _ccrsa_eme_pkcs1v15_decode_safe_ws + _ccrsa_eme_pkcs1v15_decode_safe + _CCBFV_DECRYPT_CTX_INIT_WORKSPACE_N +end +end + +subgraph libcorecrypto.dylib-14.2.1 + _ccrsa_eme_pkcs1v15_decode-0-old +_ccbfv_param_ctx_init-0-old +_cckyber_polyvec_decompress-0-old +_ccsha384_vng_arm_compress-0-old +_PQCLEAN_KYBER_CLEAN_indcpa_enc_ws-0-old +_ccrsa_decrypt_eme_pkcs1v15_blinded_ws-0-old +_cckyber_polyvec_compress-0-old +_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair-0-old +_ccsha512_256_vng_arm_compress-0-old +_ccrng_uniform-0-old +_ccsha512_vng_arm_compress-0-old +_PQCLEAN_KYBER_CLEAN_crypto_kem_enc-0-old +_PQCLEAN_KYBER_CLEAN_indcpa_dec_ws-0-old + +end + +``` + + +```mermaid +pie showData + title Function Matches - 99.8271% +"unmatched_funcs_len" : 7 +"matched_funcs_len" : 4042 +``` + + + +```mermaid +pie showData + title Matched Function Similarity - 99.0599% +"matched_funcs_with_code_changes_len" : 13 +"matched_funcs_with_non_code_changes_len" : 25 +"matched_funcs_no_changes_len" : 4004 +``` + +# Metadata + +## Ghidra Diff Engine + +### Command Line + +#### Captured Command Line + + +``` +ghidriff --project-location ghidra_projects --project-name ghidriff --symbols-path symbols --threaded --log-level INFO --file-log-level INFO --log-path ghidriff.log --min-func-len 10 --bsim --max-ram-percent 60.0 --max-section-funcs 200 libcorecrypto.dylib-14.2.1 libcorecrypto.dylib-14.3 +``` + + +#### Verbose Args + + +
+ +``` +--old ['bins/14.2.1-14.3/libcorecrypto.dylib-14.2.1'] --new [['bins/14.2.1-14.3/libcorecrypto.dylib-14.3']] --engine VersionTrackingDiff --output-path ghidriffs --summary False --project-location ghidra_projects --project-name ghidriff --symbols-path symbols --threaded True --force-analysis False --force-diff False --no-symbols False --log-level INFO --file-log-level INFO --log-path ghidriff.log --va False --min-func-len 10 --use-calling-counts False --bsim True --bsim-full False --max-ram-percent 60.0 --print-flags False --jvm-args None --side-by-side False --max-section-funcs 200 --md-title None +``` + + +
+ +## Binary Metadata Diff + + +```diff +--- libcorecrypto.dylib-14.2.1 Meta ++++ libcorecrypto.dylib-14.3 Meta +@@ -1,47 +1,47 @@ +-Program Name: libcorecrypto.dylib-14.2.1 ++Program Name: libcorecrypto.dylib-14.3 + Language ID: AARCH64:LE:64:AppleSilicon (1.5) + Compiler ID: default + Processor: AARCH64 + Endian: Little + Address Size: 64 +-Minimum Address: 1f1d1a000 +-Maximum Address: 23b6cc017 +-# of Bytes: 794544 ++Minimum Address: 1f1e32000 ++Maximum Address: 23bb4c017 ++# of Bytes: 794600 + # of Memory Blocks: 24 +-# of Instructions: 128621 +-# of Defined Data: 7806 +-# of Functions: 2021 +-# of Symbols: 12747 ++# of Instructions: 128937 ++# of Defined Data: 7825 ++# of Functions: 2028 ++# of Symbols: 12806 + # of Data Types: 71 + # of Data Type Categories: 10 + Analyzed: true + Created With Ghidra Version: 11.0 + Date Created: Tue Jan 30 16:20:44 UTC 2024 + Executable Format: Mac OS X Mach-O +-Executable Location: /workspaces/ghidriff/bins/14.2.1-14.3/libcorecrypto.dylib-14.2.1 +-Executable MD5: 59cfa7356178870744a9534a7dfc7699 +-Executable SHA256: c4efde9fc70e3c1fca7221d6b4e50de249ad24500379957020778bfcb66ef6a9 +-FSRL: file:///workspaces/ghidriff/bins/14.2.1-14.3/libcorecrypto.dylib-14.2.1?MD5=59cfa7356178870744a9534a7dfc7699 ++Executable Location: /workspaces/ghidriff/bins/14.2.1-14.3/libcorecrypto.dylib-14.3 ++Executable MD5: 50392187c100dc4d0daa5d5ea92c52e5 ++Executable SHA256: bf6c5331841329110880055fb4e06ab9e406f298c03b8719b2dd6c64c6586834 ++FSRL: file:///workspaces/ghidriff/bins/14.2.1-14.3/libcorecrypto.dylib-14.3?MD5=50392187c100dc4d0daa5d5ea92c52e5 + Mach-O File Type: DYLIB + Mach-O File Type Description: Dynamically Bound Shared Library + Mach-O Flag 0: NOUNDEFS + Mach-O Flag 1: DYLDLINK + Mach-O Flag 2: TWOLEVEL + Mach-O Flag 3: NO_REEXPORTED_DYLIBS + Mach-O Flag 4: APP_EXTENSION_SAFE + Mach-O Sub-framework 0: System + Preferred Root Namespace Category: + Relocatable: true + Required Library [ 0]: /usr/lib/system/libcorecrypto.dylib + Required Library [ 1]: /usr/lib/system/libdyld.dylib + Required Library [ 2]: /usr/lib/system/libcompiler_rt.dylib + Required Library [ 3]: /usr/lib/system/libsystem_kernel.dylib + Required Library [ 4]: /usr/lib/system/libsystem_platform.dylib + Required Library [ 5]: /usr/lib/system/libsystem_malloc.dylib + Required Library [ 6]: /usr/lib/system/libsystem_c.dylib + Required Library [ 7]: /usr/lib/system/libsystem_blocks.dylib + Required Library [ 8]: /usr/lib/system/libsystem_pthread.dylib + Required Library [ 9]: /usr/lib/system/libmacho.dylib + Required Library [ 10]: /usr/lib/system/libsystem_trace.dylib + Required Library [ 11]: /usr/lib/system/libdispatch.dylib + Should Ask To Analyze: false + +``` + + +## Program Options + + +
+Ghidra libcorecrypto.dylib-14.2.1 Decompiler Options + + +|Decompiler Option|Value| +| :---: | :---: | +|Prototype Evaluation|__cdecl| + +
+ + +
+Ghidra libcorecrypto.dylib-14.2.1 Specification extensions Options + + +|Specification extensions Option|Value| +| :---: | :---: | +|FormatVersion|0| +|VersionCounter|0| + +
+ + +
+Ghidra libcorecrypto.dylib-14.2.1 Analyzers Options + + +|Analyzers Option|Value| +| :---: | :---: | +|AARCH64 ELF PLT Thunks|true| +|ASCII Strings|true| +|ASCII Strings.Create Strings Containing Existing Strings|true| +|ASCII Strings.Create Strings Containing References|true| +|ASCII Strings.Force Model Reload|false| +|ASCII Strings.Minimum String Length|LEN_5| +|ASCII Strings.Model File|StringModel.sng| +|ASCII Strings.Require Null Termination for String|true| +|ASCII Strings.Search Only in Accessible Memory Blocks|true| +|ASCII Strings.String Start Alignment|ALIGN_1| +|ASCII Strings.String end alignment|4| +|Aggressive Instruction Finder|false| +|Aggressive Instruction Finder.Create Analysis Bookmarks|true| +|Apply Data Archives|true| +|Apply Data Archives.Archive Chooser|[Auto-Detect]| +|Apply Data Archives.Create Analysis Bookmarks|true| +|Apply Data Archives.GDT User File Archive Path|None| +|Apply Data Archives.User Project Archive Path|None| +|Basic Constant Reference Analyzer|true| +|Basic Constant Reference Analyzer.Create Data from pointer|false| +|Basic Constant Reference Analyzer.Function parameter/return Pointer analysis|true| +|Basic Constant Reference Analyzer.Max Threads|2| +|Basic Constant Reference Analyzer.Min absolute reference|4| +|Basic Constant Reference Analyzer.Require pointer param data type|false| +|Basic Constant Reference Analyzer.Speculative reference max|512| +|Basic Constant Reference Analyzer.Speculative reference min|1024| +|Basic Constant Reference Analyzer.Stored Value Pointer analysis|true| +|Basic Constant Reference Analyzer.Trust values read from writable memory|true| +|Call Convention ID|true| +|Call Convention ID.Analysis Decompiler Timeout (sec)|60| +|Call-Fixup Installer|true| +|Condense Filler Bytes|false| +|Condense Filler Bytes.Filler Value|Auto| +|Condense Filler Bytes.Minimum number of sequential bytes|1| +|Create Address Tables|true| +|Create Address Tables.Allow Offcut References|false| +|Create Address Tables.Auto Label Table|false| +|Create Address Tables.Create Analysis Bookmarks|true| +|Create Address Tables.Maxmimum Pointer Distance|16777215| +|Create Address Tables.Minimum Pointer Address|4132| +|Create Address Tables.Minimum Table Size|2| +|Create Address Tables.Pointer Alignment|1| +|Create Address Tables.Relocation Table Guide|true| +|Create Address Tables.Table Alignment|4| +|DWARF Line Number|false| +|Data Reference|true| +|Data Reference.Address Table Alignment|1| +|Data Reference.Address Table Minimum Size|2| +|Data Reference.Align End of Strings|false| +|Data Reference.Ascii String References|true| +|Data Reference.Create Address Tables|false| +|Data Reference.Minimum String Length|5| +|Data Reference.References to Pointers|true| +|Data Reference.Relocation Table Guide|true| +|Data Reference.Respect Execute Flag|true| +|Data Reference.Subroutine References|true| +|Data Reference.Switch Table References|false| +|Data Reference.Unicode String References|true| +|Decompiler Parameter ID|false| +|Decompiler Parameter ID.Analysis Clear Level|ANALYSIS| +|Decompiler Parameter ID.Analysis Decompiler Timeout (sec)|60| +|Decompiler Parameter ID.Commit Data Types|true| +|Decompiler Parameter ID.Commit Void Return Values|false| +|Decompiler Parameter ID.Prototype Evaluation|__cdecl| +|Decompiler Switch Analysis|true| +|Decompiler Switch Analysis.Analysis Decompiler Timeout (sec)|60| +|Demangler GNU|true| +|Demangler GNU.Apply Function Calling Conventions|true| +|Demangler GNU.Apply Function Signatures|true| +|Demangler GNU.Demangle Only Known Mangled Symbols|false| +|Demangler GNU.Demangler Format|AUTO| +|Demangler GNU.Use Deprecated Demangler|false| +|Disassemble Entry Points|true| +|Disassemble Entry Points.Respect Execute Flag|true| +|Embedded Media|true| +|Embedded Media.Create Analysis Bookmarks|true| +|External Entry References|true| +|External Symbol Resolver|true| +|Function Start Search|true| +|Function Start Search After Code|true| +|Function Start Search After Code.Bookmark Functions|false| +|Function Start Search After Code.Search Data Blocks|false| +|Function Start Search After Data|true| +|Function Start Search After Data.Bookmark Functions|false| +|Function Start Search After Data.Search Data Blocks|false| +|Function Start Search.Bookmark Functions|false| +|Function Start Search.Search Data Blocks|false| +|Mach-O Function Starts|true| +|Mach-O Function Starts.Bookmark failed functions|false| +|Mach-O Function Starts.Bookmark new functions|false| +|Mach-O Function Starts.Bookmark skipped functions|false| +|Mach-O Function Starts.Use PseudoDisassembler|true| +|Non-Returning Functions - Discovered|true| +|Non-Returning Functions - Discovered.Create Analysis Bookmarks|true| +|Non-Returning Functions - Discovered.Function Non-return Threshold|3| +|Non-Returning Functions - Discovered.Repair Flow Damage|true| +|Non-Returning Functions - Known|true| +|Non-Returning Functions - Known.Create Analysis Bookmarks|true| +|Reference|true| +|Reference.Address Table Alignment|1| +|Reference.Address Table Minimum Size|2| +|Reference.Align End of Strings|false| +|Reference.Ascii String References|true| +|Reference.Create Address Tables|false| +|Reference.Minimum String Length|5| +|Reference.References to Pointers|true| +|Reference.Relocation Table Guide|true| +|Reference.Respect Execute Flag|true| +|Reference.Subroutine References|true| +|Reference.Switch Table References|false| +|Reference.Unicode String References|true| +|Scalar Operand References|false| +|Scalar Operand References.Relocation Table Guide|true| +|Shared Return Calls|true| +|Shared Return Calls.Allow Conditional Jumps|false| +|Shared Return Calls.Assume Contiguous Functions Only|true| +|Stack|true| +|Stack.Create Local Variables|true| +|Stack.Create Param Variables|true| +|Stack.useNewFunctionStackAnalysis|true| +|Subroutine References|true| +|Subroutine References.Create Thunks Early|true| +|Variadic Function Signature Override|false| +|Variadic Function Signature Override.Create Analysis Bookmarks|false| + +
+ + +
+Ghidra libcorecrypto.dylib-14.3 Decompiler Options + + +|Decompiler Option|Value| +| :---: | :---: | +|Prototype Evaluation|__cdecl| + +
+ + +
+Ghidra libcorecrypto.dylib-14.3 Specification extensions Options + + +|Specification extensions Option|Value| +| :---: | :---: | +|FormatVersion|0| +|VersionCounter|0| + +
+ + +
+Ghidra libcorecrypto.dylib-14.3 Analyzers Options + + +|Analyzers Option|Value| +| :---: | :---: | +|AARCH64 ELF PLT Thunks|true| +|ASCII Strings|true| +|ASCII Strings.Create Strings Containing Existing Strings|true| +|ASCII Strings.Create Strings Containing References|true| +|ASCII Strings.Force Model Reload|false| +|ASCII Strings.Minimum String Length|LEN_5| +|ASCII Strings.Model File|StringModel.sng| +|ASCII Strings.Require Null Termination for String|true| +|ASCII Strings.Search Only in Accessible Memory Blocks|true| +|ASCII Strings.String Start Alignment|ALIGN_1| +|ASCII Strings.String end alignment|4| +|Aggressive Instruction Finder|false| +|Aggressive Instruction Finder.Create Analysis Bookmarks|true| +|Apply Data Archives|true| +|Apply Data Archives.Archive Chooser|[Auto-Detect]| +|Apply Data Archives.Create Analysis Bookmarks|true| +|Apply Data Archives.GDT User File Archive Path|None| +|Apply Data Archives.User Project Archive Path|None| +|Basic Constant Reference Analyzer|true| +|Basic Constant Reference Analyzer.Create Data from pointer|false| +|Basic Constant Reference Analyzer.Function parameter/return Pointer analysis|true| +|Basic Constant Reference Analyzer.Max Threads|2| +|Basic Constant Reference Analyzer.Min absolute reference|4| +|Basic Constant Reference Analyzer.Require pointer param data type|false| +|Basic Constant Reference Analyzer.Speculative reference max|512| +|Basic Constant Reference Analyzer.Speculative reference min|1024| +|Basic Constant Reference Analyzer.Stored Value Pointer analysis|true| +|Basic Constant Reference Analyzer.Trust values read from writable memory|true| +|Call Convention ID|true| +|Call Convention ID.Analysis Decompiler Timeout (sec)|60| +|Call-Fixup Installer|true| +|Condense Filler Bytes|false| +|Condense Filler Bytes.Filler Value|Auto| +|Condense Filler Bytes.Minimum number of sequential bytes|1| +|Create Address Tables|true| +|Create Address Tables.Allow Offcut References|false| +|Create Address Tables.Auto Label Table|false| +|Create Address Tables.Create Analysis Bookmarks|true| +|Create Address Tables.Maxmimum Pointer Distance|16777215| +|Create Address Tables.Minimum Pointer Address|4132| +|Create Address Tables.Minimum Table Size|2| +|Create Address Tables.Pointer Alignment|1| +|Create Address Tables.Relocation Table Guide|true| +|Create Address Tables.Table Alignment|4| +|DWARF Line Number|false| +|Data Reference|true| +|Data Reference.Address Table Alignment|1| +|Data Reference.Address Table Minimum Size|2| +|Data Reference.Align End of Strings|false| +|Data Reference.Ascii String References|true| +|Data Reference.Create Address Tables|false| +|Data Reference.Minimum String Length|5| +|Data Reference.References to Pointers|true| +|Data Reference.Relocation Table Guide|true| +|Data Reference.Respect Execute Flag|true| +|Data Reference.Subroutine References|true| +|Data Reference.Switch Table References|false| +|Data Reference.Unicode String References|true| +|Decompiler Parameter ID|false| +|Decompiler Parameter ID.Analysis Clear Level|ANALYSIS| +|Decompiler Parameter ID.Analysis Decompiler Timeout (sec)|60| +|Decompiler Parameter ID.Commit Data Types|true| +|Decompiler Parameter ID.Commit Void Return Values|false| +|Decompiler Parameter ID.Prototype Evaluation|__cdecl| +|Decompiler Switch Analysis|true| +|Decompiler Switch Analysis.Analysis Decompiler Timeout (sec)|60| +|Demangler GNU|true| +|Demangler GNU.Apply Function Calling Conventions|true| +|Demangler GNU.Apply Function Signatures|true| +|Demangler GNU.Demangle Only Known Mangled Symbols|false| +|Demangler GNU.Demangler Format|AUTO| +|Demangler GNU.Use Deprecated Demangler|false| +|Disassemble Entry Points|true| +|Disassemble Entry Points.Respect Execute Flag|true| +|Embedded Media|true| +|Embedded Media.Create Analysis Bookmarks|true| +|External Entry References|true| +|External Symbol Resolver|true| +|Function Start Search|true| +|Function Start Search After Code|true| +|Function Start Search After Code.Bookmark Functions|false| +|Function Start Search After Code.Search Data Blocks|false| +|Function Start Search After Data|true| +|Function Start Search After Data.Bookmark Functions|false| +|Function Start Search After Data.Search Data Blocks|false| +|Function Start Search.Bookmark Functions|false| +|Function Start Search.Search Data Blocks|false| +|Mach-O Function Starts|true| +|Mach-O Function Starts.Bookmark failed functions|false| +|Mach-O Function Starts.Bookmark new functions|false| +|Mach-O Function Starts.Bookmark skipped functions|false| +|Mach-O Function Starts.Use PseudoDisassembler|true| +|Non-Returning Functions - Discovered|true| +|Non-Returning Functions - Discovered.Create Analysis Bookmarks|true| +|Non-Returning Functions - Discovered.Function Non-return Threshold|3| +|Non-Returning Functions - Discovered.Repair Flow Damage|true| +|Non-Returning Functions - Known|true| +|Non-Returning Functions - Known.Create Analysis Bookmarks|true| +|Reference|true| +|Reference.Address Table Alignment|1| +|Reference.Address Table Minimum Size|2| +|Reference.Align End of Strings|false| +|Reference.Ascii String References|true| +|Reference.Create Address Tables|false| +|Reference.Minimum String Length|5| +|Reference.References to Pointers|true| +|Reference.Relocation Table Guide|true| +|Reference.Respect Execute Flag|true| +|Reference.Subroutine References|true| +|Reference.Switch Table References|false| +|Reference.Unicode String References|true| +|Scalar Operand References|false| +|Scalar Operand References.Relocation Table Guide|true| +|Shared Return Calls|true| +|Shared Return Calls.Allow Conditional Jumps|false| +|Shared Return Calls.Assume Contiguous Functions Only|true| +|Stack|true| +|Stack.Create Local Variables|true| +|Stack.Create Param Variables|true| +|Stack.useNewFunctionStackAnalysis|true| +|Subroutine References|true| +|Subroutine References.Create Thunks Early|true| +|Variadic Function Signature Override|false| +|Variadic Function Signature Override.Create Analysis Bookmarks|false| + +
+ +## Diff Stats + + + +|Stat|Value| +| :---: | :---: | +|added_funcs_len|7| +|deleted_funcs_len|0| +|modified_funcs_len|38| +|added_symbols_len|0| +|deleted_symbols_len|0| +|diff_time|5.155958652496338| +|deleted_strings_len|1| +|added_strings_len|6| +|match_types|Counter({'SymbolsHash': 1978, 'ExternalsName': 34, 'ExactInstructionsFunctionHasher': 20, 'StructuralGraphHash': 18, 'ExactBytesFunctionHasher': 11, 'BSIM': 3})| +|items_to_process|45| +|diff_types|Counter({'address': 38, 'refcount': 25, 'calling': 24, 'length': 15, 'code': 13, 'called': 12})| +|unmatched_funcs_len|7| +|total_funcs_len|4049| +|matched_funcs_len|4042| +|matched_funcs_with_code_changes_len|13| +|matched_funcs_with_non_code_changes_len|25| +|matched_funcs_no_changes_len|4004| +|match_func_similarity_percent|99.0599%| +|func_match_overall_percent|99.8271%| +|first_matches|Counter({'SymbolsHash': 1978, 'ExactInstructionsFunctionHasher': 20, 'StructuralGraphHash': 18, 'ExactBytesFunctionHasher': 11, 'BSIM': 3})| + + + +```mermaid +pie showData + title All Matches +"SymbolsHash" : 1978 +"ExternalsName" : 34 +"ExactBytesFunctionHasher" : 11 +"ExactInstructionsFunctionHasher" : 20 +"BSIM" : 3 +"StructuralGraphHash" : 18 +``` + + + +```mermaid +pie showData + title First Matches +"SymbolsHash" : 1978 +"ExactBytesFunctionHasher" : 11 +"ExactInstructionsFunctionHasher" : 20 +"BSIM" : 3 +"StructuralGraphHash" : 18 +``` + + + +```mermaid +pie showData + title Diff Stats +"added_funcs_len" : 7 +"deleted_funcs_len" : 0 +"modified_funcs_len" : 38 +``` + + + +```mermaid +pie showData + title Symbols +"added_symbols_len" : 0 +"deleted_symbols_len" : 0 +``` + +## Strings + + + +```mermaid +pie showData + title Strings +"deleted_strings_len" : 1 +"added_strings_len" : 6 +``` + +### Strings Diff + + +```diff +--- deleted strings ++++ added strings +@@ -1 +1,6 @@ +-s_Bogus_Kyber_parameter._1f1db4cfa ++s__CCBFV_PARAM_CTX_INIT_WORKSPACE__23bb400d0 ++s__ccrsa_eme_pkcs1v15_decode_safe__23bb41ace ++s__cc_xor_safe_23bb40490 ++s__CCBFV_DECRYPT_CTX_INIT_WORKSPAC_23bb41c90 ++s__ccrsa_eme_pkcs1v15_decode_safe_23bb49cf9 ++s_ccrsa_eme_pkcs1v15_decode_genera_1f1ecd401 + +``` + + +### String References + +#### Old + + + +|String|Ref Count|Ref Func| +| :---: | :---: | :---: | +|s_Bogus_Kyber_parameter._1f1db4cfa|4|_cckyber_polyvec_compress,_cckyber_poly_decompress,_cckyber_poly_compress,_cckyber_polyvec_decompress| + +#### New + + + +|String|Ref Count|Ref Func| +| :---: | :---: | :---: | +|s__CCBFV_PARAM_CTX_INIT_WORKSPACE__23bb400d0|1|| +|s__ccrsa_eme_pkcs1v15_decode_safe__23bb41ace|1|| +|s__cc_xor_safe_23bb40490|1|| +|s__CCBFV_DECRYPT_CTX_INIT_WORKSPAC_23bb41c90|1|| +|s__ccrsa_eme_pkcs1v15_decode_safe_23bb49cf9|1|| +|s_ccrsa_eme_pkcs1v15_decode_genera_1f1ecd401|1|_ccrsa_eme_pkcs1v15_decode_safe_ws| + +# Deleted + +# Added + +## _PQCLEAN_KYBER_CLEAN_crypto_kem_keypair_coins + +### Function Meta + + + +|Key|libcorecrypto.dylib-14.3| +| :---: | :---: | +|name|_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair_coins| +|fullname|_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair_coins| +|refcount|2| +|length|184| +|called|_PQCLEAN_KYBER_CLEAN_indcpa_keypair
_ccdigest
_ccsha3_256_di
_memcpy| +|calling|_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair| +|paramcount|0| +|address|1f1e4c178| +|sig|undefined _PQCLEAN_KYBER_CLEAN_crypto_kem_keypair_coins(void)| +|sym_type|Function| +|sym_source|IMPORTED| +|external|False| + + +```diff +--- _PQCLEAN_KYBER_CLEAN_crypto_kem_keypair_coins ++++ _PQCLEAN_KYBER_CLEAN_crypto_kem_keypair_coins +@@ -0,0 +1,30 @@ ++ ++undefined8 ++_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair_coins(int *param_1,void *param_2,long param_3,long param_4) ++ ++{ ++ uint uVar1; ++ undefined8 uVar2; ++ undefined8 uVar3; ++ undefined8 uVar4; ++ undefined8 uVar5; ++ ++ uVar2 = _PQCLEAN_KYBER_CLEAN_indcpa_keypair(); ++ if ((int)uVar2 == 0) { ++ _memcpy((void *)(param_3 + (ulong)(uint)(*param_1 * 0x180)),param_2, ++ (ulong)(*param_1 * 0x180 | 0x20)); ++ uVar3 = _ccsha3_256_di(); ++ uVar1 = *param_1 * 0x180 | 0x20; ++ _ccdigest(uVar3,uVar1,param_2,param_3 + (ulong)(uVar1 + *param_1 * 0x180 | 0x40) + -0x40); ++ uVar3 = *(undefined8 *)(param_4 + 0x20); ++ uVar5 = *(undefined8 *)(param_4 + 0x38); ++ uVar4 = *(undefined8 *)(param_4 + 0x30); ++ param_3 = param_3 + (ulong)(*param_1 * 0x300 | 0x60); ++ *(undefined8 *)(param_3 + -0x18) = *(undefined8 *)(param_4 + 0x28); ++ *(undefined8 *)(param_3 + -0x20) = uVar3; ++ *(undefined8 *)(param_3 + -8) = uVar5; ++ *(undefined8 *)(param_3 + -0x10) = uVar4; ++ } ++ return uVar2; ++} ++ + +``` + + +## _PQCLEAN_KYBER_CLEAN_crypto_kem_enc_msg + +### Function Meta + + + +|Key|libcorecrypto.dylib-14.3| +| :---: | :---: | +|name|_PQCLEAN_KYBER_CLEAN_crypto_kem_enc_msg| +|fullname|_PQCLEAN_KYBER_CLEAN_crypto_kem_enc_msg| +|refcount|2| +|length|220| +|called|_PQCLEAN_KYBER_CLEAN_indcpa_enc
_ccdigest
_ccsha3_256_di
_ccsha3_512_di| +|calling|_PQCLEAN_KYBER_CLEAN_crypto_kem_enc| +|paramcount|0| +|address|1f1e4c2c0| +|sig|undefined _PQCLEAN_KYBER_CLEAN_crypto_kem_enc_msg(void)| +|sym_type|Function| +|sym_source|IMPORTED| +|external|False| + + +```diff +--- _PQCLEAN_KYBER_CLEAN_crypto_kem_enc_msg ++++ _PQCLEAN_KYBER_CLEAN_crypto_kem_enc_msg +@@ -0,0 +1,40 @@ ++ ++/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ ++ ++void _PQCLEAN_KYBER_CLEAN_crypto_kem_enc_msg ++ (int *param_1,undefined8 param_2,undefined8 *param_3,undefined8 param_4, ++ undefined8 *param_5) ++ ++{ ++ int iVar1; ++ undefined8 uVar2; ++ undefined8 local_90; ++ undefined8 uStack_88; ++ undefined8 uStack_80; ++ undefined8 uStack_78; ++ undefined auStack_70 [40]; ++ long local_48; ++ ++ local_48 = *_DAT_22df469b0; ++ uStack_88 = param_5[1]; ++ local_90 = *param_5; ++ uStack_78 = param_5[3]; ++ uStack_80 = param_5[2]; ++ uVar2 = _ccsha3_256_di(); ++ _ccdigest(uVar2,*param_1 * 0x180 | 0x20,param_4,auStack_70); ++ uVar2 = _ccsha3_512_di(); ++ _ccdigest(uVar2,0x40,&local_90,&local_90); ++ iVar1 = _PQCLEAN_KYBER_CLEAN_indcpa_enc(param_1,param_2,param_5,param_4,auStack_70); ++ if (iVar1 == 0) { ++ param_3[1] = uStack_88; ++ *param_3 = local_90; ++ param_3[3] = uStack_78; ++ param_3[2] = uStack_80; ++ } ++ if (*_DAT_22df469b0 == local_48) { ++ return; ++ } ++ func_0x0001f2881250(); ++ return; ++} ++ + +``` + + +## _CCBFV_PARAM_CTX_INIT_WORKSPACE_N + +### Function Meta + + + +|Key|libcorecrypto.dylib-14.3| +| :---: | :---: | +|name|_CCBFV_PARAM_CTX_INIT_WORKSPACE_N| +|fullname|_CCBFV_PARAM_CTX_INIT_WORKSPACE_N| +|refcount|3| +|length|88| +|called|_CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N
_CCBFV_DECRYPT_CTX_INIT_WORKSPACE_N
_CCPOLYZP_PO2CYC_CTX_INIT_WORKSPACE_N| +|calling|_ccbfv_param_ctx_init| +|paramcount|0| +|address|1f1e5c4c0| +|sig|undefined _CCBFV_PARAM_CTX_INIT_WORKSPACE_N(void)| +|sym_type|Function| +|sym_source|IMPORTED| +|external|False| + + +```diff +--- _CCBFV_PARAM_CTX_INIT_WORKSPACE_N ++++ _CCBFV_PARAM_CTX_INIT_WORKSPACE_N +@@ -0,0 +1,20 @@ ++ ++ulong _CCBFV_PARAM_CTX_INIT_WORKSPACE_N(undefined8 param_1) ++ ++{ ++ ulong uVar1; ++ ulong uVar2; ++ ulong uVar3; ++ ++ uVar1 = _CCPOLYZP_PO2CYC_CTX_INIT_WORKSPACE_N(1); ++ uVar2 = _CCBFV_DECRYPT_CTX_INIT_WORKSPACE_N(param_1); ++ uVar3 = _CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N(param_1); ++ if (uVar2 <= uVar3) { ++ uVar2 = uVar3; ++ } ++ if (uVar1 <= uVar2) { ++ uVar1 = uVar2; ++ } ++ return uVar1; ++} ++ + +``` + + +## _cc_xor_safe + +### Function Meta + + + +|Key|libcorecrypto.dylib-14.3| +| :---: | :---: | +|name|_cc_xor_safe| +|fullname|_cc_xor_safe| +|refcount|3| +|length|156| +|called|| +|calling|_ccrsa_eme_pkcs1v15_decode_safe_ws| +|paramcount|0| +|address|1f1e5fca4| +|sig|undefined _cc_xor_safe(void)| +|sym_type|Function| +|sym_source|IMPORTED| +|external|False| + + +```diff +--- _cc_xor_safe ++++ _cc_xor_safe +@@ -0,0 +1,40 @@ ++ ++void _cc_xor_safe(ulong *param_1,long param_2,uint param_3,long param_4,long param_5,byte *param_6) ++ ++{ ++ ulong uVar1; ++ ulong uVar2; ++ uint uVar3; ++ ulong uVar4; ++ byte *pbVar5; ++ long lVar6; ++ ++ uVar4 = *param_1; ++ if (uVar4 != 0) { ++ uVar1 = 0; ++ uVar2 = -param_5; ++ do { ++ if (param_4 != 0) { ++ uVar3 = (uint)*(byte *)(param_2 + uVar1); ++ pbVar5 = param_6; ++ uVar4 = uVar2; ++ lVar6 = param_4; ++ do { ++ uVar3 = (uint)*pbVar5 & ++ (int)((uVar4 & 0xffffffff | uVar4 >> 0x20) + 0xffffffff >> 0x20) - 1U & -param_3 ^ ++ uVar3; ++ *(char *)(param_2 + uVar1) = (char)uVar3; ++ uVar4 = uVar4 + 1; ++ lVar6 = lVar6 + -1; ++ pbVar5 = pbVar5 + 1; ++ } while (lVar6 != 0); ++ uVar4 = *param_1; ++ } ++ uVar1 = uVar1 + 1; ++ uVar2 = uVar2 - 1; ++ } while (uVar1 < uVar4); ++ } ++ *param_1 = uVar4 & (ulong)param_3 - 1 | param_4 - param_5 & -(ulong)param_3; ++ return; ++} ++ + +``` + + +## _ccrsa_eme_pkcs1v15_decode_safe_ws + +### Function Meta + + + +|Key|libcorecrypto.dylib-14.3| +| :---: | :---: | +|name|_ccrsa_eme_pkcs1v15_decode_safe_ws| +|fullname|_ccrsa_eme_pkcs1v15_decode_safe_ws| +|refcount|4| +|length|992| +|called|
Expand for full list:
_cc_clear
_cc_xor_safe
_ccdigest
_ccdrbg_done
_ccdrbg_factory_nisthmac
_ccdrbg_init
_ccn_swap
_ccrng_drbg_init_withdrbg
_ccrng_uniform
_ccrsa_block_start
_ccrsa_n_from_size
_ccsha256_di
| +|calling|_ccrsa_decrypt_eme_pkcs1v15_blinded_ws
_ccrsa_eme_pkcs1v15_decode
_ccrsa_eme_pkcs1v15_decode_safe| +|paramcount|0| +|address|1f1e7cd58| +|sig|undefined _ccrsa_eme_pkcs1v15_decode_safe_ws(void)| +|sym_type|Function| +|sym_source|IMPORTED| +|external|False| + + +```diff +--- _ccrsa_eme_pkcs1v15_decode_safe_ws ++++ _ccrsa_eme_pkcs1v15_decode_safe_ws +@@ -0,0 +1,221 @@ ++ ++/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ ++ ++undefined8 ++_ccrsa_eme_pkcs1v15_decode_safe_ws ++ (long param_1,long *param_2,ulong *param_3,undefined8 param_4,ulong param_5, ++ undefined8 param_6) ++ ++{ ++ long lVar1; ++ undefined8 uVar2; ++ byte *pbVar3; ++ undefined8 uVar4; ++ uint uVar5; ++ ulong uVar6; ++ undefined8 uVar7; ++ ulong uVar8; ++ undefined8 uVar9; ++ undefined8 uVar10; ++ ulong local_228; ++ ulong local_220; ++ long local_218; ++ undefined local_209; ++ ulong local_208; ++ uint local_1fc; ++ undefined8 local_1f8; ++ undefined8 local_1f0; ++ code *local_1e8; ++ undefined8 uStack_1e0; ++ undefined8 local_1d8; ++ undefined8 local_1d0; ++ undefined8 local_1c8; ++ undefined8 local_1c0; ++ undefined8 uStack_1b8; ++ undefined8 uStack_1b0; ++ undefined8 uStack_1a8; ++ undefined8 local_1a0; ++ undefined8 uStack_198; ++ undefined8 local_190; ++ undefined8 local_180; ++ undefined8 uStack_178; ++ undefined8 local_170; ++ undefined8 uStack_168; ++ undefined8 uStack_160; ++ undefined8 uStack_158; ++ undefined8 local_150; ++ undefined8 uStack_148; ++ undefined8 uStack_140; ++ undefined8 uStack_138; ++ undefined8 local_130; ++ undefined8 uStack_128; ++ undefined8 uStack_120; ++ undefined8 uStack_118; ++ undefined8 local_110; ++ undefined8 uStack_108; ++ undefined8 uStack_100; ++ undefined8 uStack_f8; ++ undefined8 local_f0; ++ undefined8 uStack_e8; ++ undefined8 uStack_e0; ++ undefined2 uStack_d8; ++ undefined6 local_d6; ++ undefined2 uStack_d0; ++ undefined8 uStack_ce; ++ undefined auStack_c0 [32]; ++ undefined8 local_a0; ++ undefined8 uStack_98; ++ undefined8 uStack_90; ++ undefined8 uStack_88; ++ long local_78; ++ ++ local_78 = *_DAT_22df469b0; ++ uVar10 = 0xffffffe9; ++ lVar1 = param_5 - 0xb; ++ if ((param_5 < 0xb) || (*param_3 < param_5)) goto LAB_1f1e7d0dc; ++ uVar7 = *(undefined8 *)(param_1 + 0x10); ++ uVar2 = _ccrsa_n_from_size(param_5); ++ _ccn_swap(uVar2,param_6); ++ pbVar3 = (byte *)_ccrsa_block_start(param_5,param_6,0); ++ uVar4 = (**(code **)(param_1 + 0x18))(param_1,uVar2); ++ local_1f8 = 0; ++ local_190 = 0; ++ uStack_198 = 0; ++ local_1a0 = 0; ++ uStack_1b8 = 0; ++ local_1c0 = 0; ++ uStack_1a8 = 0; ++ uStack_1b0 = 0; ++ local_1c8 = 0; ++ local_1d0 = _ccsha256_di(); ++ _ccdrbg_factory_nisthmac(&local_1c0,&local_1d0); ++ uStack_98 = 0; ++ local_a0 = 0; ++ uStack_88 = 0; ++ uStack_90 = 0; ++ uStack_e8._0_1_ = 'e'; ++ uStack_e8._1_1_ = '_'; ++ uStack_e8._2_1_ = 'p'; ++ uStack_e8._3_1_ = 'k'; ++ uStack_e8._4_1_ = 'c'; ++ uStack_e8._5_1_ = 's'; ++ uStack_e8._6_1_ = '1'; ++ uStack_e8._7_1_ = 'v'; ++ local_f0._0_1_ = 'c'; ++ local_f0._1_1_ = 'c'; ++ local_f0._2_1_ = 'r'; ++ local_f0._3_1_ = 's'; ++ local_f0._4_1_ = 'a'; ++ local_f0._5_1_ = '_'; ++ local_f0._6_1_ = 'e'; ++ local_f0._7_1_ = 'm'; ++ uStack_d8 = 0x5f65; ++ uStack_e0._0_1_ = '1'; ++ uStack_e0._1_1_ = '5'; ++ uStack_e0._2_1_ = '_'; ++ uStack_e0._3_1_ = 'd'; ++ uStack_e0._4_1_ = 'e'; ++ uStack_e0._5_1_ = 'c'; ++ uStack_e0._6_1_ = 'o'; ++ uStack_e0._7_1_ = 'd'; ++ uStack_ce._0_1_ = '_'; ++ uStack_ce._1_1_ = 'r'; ++ uStack_ce._2_1_ = 'a'; ++ uStack_ce._3_1_ = 'n'; ++ uStack_ce._4_1_ = 'd'; ++ uStack_ce._5_1_ = 'o'; ++ uStack_ce._6_1_ = 'm'; ++ uStack_ce._7_1_ = '\0'; ++ local_d6 = 0x6172656e6567; ++ uStack_d0 = 0x6574; ++ if (param_2 != (long *)0x0) { ++ uVar10 = _ccsha256_di(); ++ _ccdigest(uVar10,*param_2 << 3,param_2 + *param_2 * 3 + 4,&local_a0); ++ } ++ uVar10 = _ccsha256_di(); ++ _ccdigest(uVar10,param_5,pbVar3,auStack_c0); ++ uStack_108 = 0; ++ local_110 = 0; ++ uStack_f8 = 0; ++ uStack_100 = 0; ++ uStack_128 = 0; ++ local_130 = 0; ++ uStack_118 = 0; ++ uStack_120 = 0; ++ uStack_148 = 0; ++ local_150 = 0; ++ uStack_138 = 0; ++ uStack_140 = 0; ++ uStack_168 = 0; ++ local_170 = 0; ++ uStack_158 = 0; ++ uStack_160 = 0; ++ uStack_178 = 0; ++ local_180 = 0; ++ uVar10 = _ccdrbg_init(&local_1c0,&local_180,0x20,&local_a0,0x20,auStack_c0,0x29,&local_f0); ++ if ((int)uVar10 == 0) { ++ local_1e8 = (code *)0x0; ++ uStack_1e0 = 0; ++ local_1d8 = 0; ++ uVar10 = _ccrng_drbg_init_withdrbg(&local_1e8,&local_1c0,&local_180); ++ if (((int)uVar10 == 0) && (uVar10 = (*local_1e8)(&local_1e8,lVar1,uVar4), (int)uVar10 == 0)) { ++ local_1f0 = 0; ++ uVar10 = _ccrng_uniform(&local_1e8,param_5 - 10,&local_1f0); ++ if ((int)uVar10 == 0) { ++ local_1f8 = local_1f0; ++ uVar9 = local_1f0; ++ goto LAB_1f1e7cf28; ++ } ++ } ++ uVar9 = 0; ++ } ++ else { ++ uVar9 = 0; ++ } ++LAB_1f1e7cf28: ++ _cc_clear(0x20,&local_a0); ++ _cc_clear(0x20,auStack_c0); ++ _cc_clear(8,&local_1f0); ++ _ccdrbg_done(&local_1c0,&local_180); ++ if ((int)uVar10 == 0) { ++ uVar8 = 0; ++ uVar5 = 1; ++ uVar6 = 2; ++ do { ++ uVar8 = uVar8 & (long)(int)(uVar5 - 1) | uVar6 & (long)(int)-uVar5; ++ uVar5 = uVar5 & (uint)((ulong)pbVar3[uVar6] + 0xffffffff >> 0x20); ++ local_209 = (undefined)uVar5; ++ uVar6 = uVar6 + 1; ++ } while (param_5 != uVar6); ++ local_218 = ~uVar8 + param_5; ++ local_220 = uVar8 - 2; ++ uVar5 = (uint)((local_220 >> 3 & 0xffffffff | local_220 >> 0x23) + 0xffffffff >> 0x20) ^ 1 | ++ uVar5 | (uint)(((ulong)pbVar3[1] ^ 2 | (ulong)*pbVar3) + 0xffffffff >> 0x20); ++ local_228 = *param_3; ++ local_208 = uVar8; ++ local_1fc = uVar5; ++ _cc_clear(local_228,param_4); ++ _cc_xor_safe(&local_228,param_4,uVar5 ^ 1,param_5,uVar8 + 1,pbVar3); ++ _cc_xor_safe(param_3,param_4,uVar5,lVar1,uVar9,uVar4); ++ *param_3 = local_228 & uVar5 - 1 | *param_3 & (ulong)-uVar5; ++ } ++ else { ++ _cc_clear(lVar1,uVar4); ++ _cc_clear(8,&local_1f8); ++ } ++ _ccn_swap(uVar2,param_6); ++ _cc_clear(8,&local_1f8); ++ _cc_clear(4,&local_1fc); ++ _cc_clear(8,&local_208); ++ _cc_clear(1,&local_209); ++ _cc_clear(8,&local_218); ++ _cc_clear(8,&local_220); ++ *(undefined8 *)(param_1 + 0x10) = uVar7; ++LAB_1f1e7d0dc: ++ if (*_DAT_22df469b0 != local_78) { ++ uVar10 = func_0x0001f2881250(); ++ return uVar10; ++ } ++ return uVar10; ++} ++ + +``` + + +## _ccrsa_eme_pkcs1v15_decode_safe + +### Function Meta + + + +|Key|libcorecrypto.dylib-14.3| +| :---: | :---: | +|name|_ccrsa_eme_pkcs1v15_decode_safe| +|fullname|_ccrsa_eme_pkcs1v15_decode_safe| +|refcount|2| +|length|244| +|called|_cc_disable_dit
_cc_malloc_clear
_cc_ws_alloc
_cc_ws_free
_ccrsa_eme_pkcs1v15_decode_safe_ws| +|calling|| +|paramcount|0| +|address|1f1e7d138| +|sig|undefined _ccrsa_eme_pkcs1v15_decode_safe(void)| +|sym_type|Function| +|sym_source|IMPORTED| +|external|False| + + +```diff +--- _ccrsa_eme_pkcs1v15_decode_safe ++++ _ccrsa_eme_pkcs1v15_decode_safe +@@ -0,0 +1,44 @@ ++ ++/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ ++ ++undefined8 ++_ccrsa_eme_pkcs1v15_decode_safe ++ (long *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5 ++ ) ++ ++{ ++ undefined8 uVar1; ++ long local_70; ++ long lStack_68; ++ undefined8 local_60; ++ code *pcStack_58; ++ code *local_50; ++ undefined local_41; ++ ++ local_41 = 0; ++ if ((_DAT_fffffc010 >> 0x39 & 1) != 0) { ++ uVar1 = UnkSytemRegRead(3,3,4,2,5); ++ if (((uint)uVar1 >> 0x18 & 1) == 0) { ++ dit = 1; ++ local_41 = 1; ++ } ++ else { ++ local_41 = 0; ++ } ++ } ++ local_70 = _cc_malloc_clear(*param_1 << 3); ++ lStack_68 = *param_1; ++ local_60 = 0; ++ pcStack_58 = _cc_ws_alloc; ++ local_50 = _cc_ws_free; ++ if (local_70 == 0) { ++ uVar1 = 0xfffffff3; ++ } ++ else { ++ uVar1 = _ccrsa_eme_pkcs1v15_decode_safe_ws(&local_70,param_1,param_2,param_3,param_4,param_5); ++ (*local_50)(&local_70); ++ } ++ _cc_disable_dit(&local_41); ++ return uVar1; ++} ++ + +``` + + +## _CCBFV_DECRYPT_CTX_INIT_WORKSPACE_N + +### Function Meta + + + +|Key|libcorecrypto.dylib-14.3| +| :---: | :---: | +|name|_CCBFV_DECRYPT_CTX_INIT_WORKSPACE_N| +|fullname|_CCBFV_DECRYPT_CTX_INIT_WORKSPACE_N| +|refcount|2| +|length|60| +|called|_CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N
_CCPOLYZP_PO2CYC_CTX_INIT_WORKSPACE_N| +|calling|_CCBFV_PARAM_CTX_INIT_WORKSPACE_N| +|paramcount|0| +|address|1f1e7e9b8| +|sig|undefined _CCBFV_DECRYPT_CTX_INIT_WORKSPACE_N(void)| +|sym_type|Function| +|sym_source|IMPORTED| +|external|False| + + +```diff +--- _CCBFV_DECRYPT_CTX_INIT_WORKSPACE_N ++++ _CCBFV_DECRYPT_CTX_INIT_WORKSPACE_N +@@ -0,0 +1,15 @@ ++ ++ulong _CCBFV_DECRYPT_CTX_INIT_WORKSPACE_N(undefined8 param_1) ++ ++{ ++ ulong uVar1; ++ ulong uVar2; ++ ++ uVar1 = _CCPOLYZP_PO2CYC_CTX_INIT_WORKSPACE_N(1); ++ uVar2 = _CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N(param_1); ++ if (uVar1 <= uVar2) { ++ uVar1 = uVar2; ++ } ++ return uVar1; ++} ++ + +``` + + +# Modified + + +*Modified functions contain code changes* +## _ccrsa_eme_pkcs1v15_decode + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|code,refcount,length,address,calling,called| +|ratio|0.38| +|i_ratio|0.16| +|m_ratio|0.56| +|b_ratio|0.65| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_ccrsa_eme_pkcs1v15_decode|_ccrsa_eme_pkcs1v15_decode| +|fullname|_ccrsa_eme_pkcs1v15_decode|_ccrsa_eme_pkcs1v15_decode| +|`refcount`|3|2| +|`length`|404|244| +|`called`|_cc_disable_dit
_ccn_swap
_ccrsa_block_start
_ccrsa_n_from_size
_memcpy|_cc_disable_dit
_cc_malloc_clear
_cc_ws_alloc
_cc_ws_free
_ccrsa_eme_pkcs1v15_decode_safe_ws
_ccrsa_n_from_size| +|`calling`|_ccrsa_decrypt_eme_pkcs1v15_blinded_ws|| +|paramcount|0|0| +|`address`|1f1d651c8|1f1e7d22c| +|sig|undefined _ccrsa_eme_pkcs1v15_decode(void)|undefined _ccrsa_eme_pkcs1v15_decode(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _ccrsa_eme_pkcs1v15_decode Called Diff + + +```diff +--- _ccrsa_eme_pkcs1v15_decode called ++++ _ccrsa_eme_pkcs1v15_decode called +@@ -2,2 +2,4 @@ +-_ccn_swap +-_ccrsa_block_start ++_cc_malloc_clear ++_cc_ws_alloc ++_cc_ws_free ++_ccrsa_eme_pkcs1v15_decode_safe_ws +@@ -5 +6,0 @@ +-_memcpy +``` + + +### _ccrsa_eme_pkcs1v15_decode Calling Diff + + +```diff +--- _ccrsa_eme_pkcs1v15_decode calling ++++ _ccrsa_eme_pkcs1v15_decode calling +@@ -1 +0,0 @@ +-_ccrsa_decrypt_eme_pkcs1v15_blinded_ws +``` + + +### _ccrsa_eme_pkcs1v15_decode Diff + + +```diff +--- _ccrsa_eme_pkcs1v15_decode ++++ _ccrsa_eme_pkcs1v15_decode +@@ -1,63 +1,45 @@ + + /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ + +-undefined8 _ccrsa_eme_pkcs1v15_decode(ulong *param_1,void *param_2,ulong param_3,undefined8 param_4) ++undefined8 ++_ccrsa_eme_pkcs1v15_decode ++ (undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) + + { +- undefined8 uVar1; +- byte *pbVar2; +- undefined8 uVar3; +- ulong uVar4; +- uint uVar5; +- ulong uVar6; ++ long lVar1; ++ undefined8 uVar2; ++ long local_70; ++ long lStack_68; ++ undefined8 local_60; ++ code *pcStack_58; ++ code *local_50; + undefined local_41; + + local_41 = 0; + if ((_DAT_0 >> 0x39 & 1) != 0) { +- uVar1 = UnkSytemRegRead(3,3,4,2,5); +- if (((uint)uVar1 >> 0x18 & 1) == 0) { ++ uVar2 = UnkSytemRegRead(3,3,4,2,5); ++ if (((uint)uVar2 >> 0x18 & 1) == 0) { + dit = 1; + local_41 = 1; + } + else { + local_41 = 0; + } + } +- uVar1 = _ccrsa_n_from_size(param_3); +- _ccn_swap(uVar1,param_4); +- pbVar2 = (byte *)_ccrsa_block_start(param_3,param_4,0); +- if (param_3 < 3) { +- uVar4 = 0; +- uVar5 = 1; ++ lVar1 = _ccrsa_n_from_size(param_3); ++ local_70 = _cc_malloc_clear(lVar1 << 3); ++ local_60 = 0; ++ pcStack_58 = _cc_ws_alloc; ++ local_50 = _cc_ws_free; ++ lStack_68 = lVar1; ++ if (local_70 == 0) { ++ uVar2 = 0xfffffff3; + } + else { +- uVar4 = 0; +- uVar5 = 1; +- uVar6 = 2; +- do { +- uVar4 = uVar4 & (long)(int)(uVar5 - 1) | uVar6 & (long)(int)-uVar5; +- uVar5 = uVar5 & (uint)((ulong)pbVar2[uVar6] + 0xffffffff >> 0x20); +- uVar6 = uVar6 + 1; +- } while (param_3 != uVar6); ++ uVar2 = _ccrsa_eme_pkcs1v15_decode_safe_ws(&local_70,0,param_1,param_2,param_3,param_4); ++ (*local_50)(&local_70); + } +- if ((uVar5 | (uint)(((ulong)pbVar2[1] ^ 2 | (ulong)*pbVar2) + 0xffffffff >> 0x20) | +- (uint)((uVar4 - 2 >> 3 & 0xffffffff | uVar4 - 2 >> 0x23) + 0xffffffff >> 0x20) ^ 1) == 0) { +- uVar6 = ~uVar4 + param_3; +- if (*param_1 < uVar6) { +- uVar1 = 0xffffffe9; +- } +- else { +- _memcpy(param_2,pbVar2 + uVar4 + 1,uVar6); +- uVar1 = 0; +- *param_1 = uVar6; +- } +- } +- else { +- uVar1 = 0xffffffe5; +- } +- uVar3 = _ccrsa_n_from_size(param_3); +- _ccn_swap(uVar3,param_4); + _cc_disable_dit(&local_41); +- return uVar1; ++ return uVar2; + } + + +``` + + +## _ccbfv_param_ctx_init + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|code,length,address,called| +|ratio|0.58| +|i_ratio|0.58| +|m_ratio|0.85| +|b_ratio|0.85| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_ccbfv_param_ctx_init|_ccbfv_param_ctx_init| +|fullname|_ccbfv_param_ctx_init|_ccbfv_param_ctx_init| +|refcount|2|2| +|`length`|320|248| +|`called`|_CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N
_CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N
_CCPOLYZP_PO2CYC_CTX_INIT_WORKSPACE_N
_cc_disable_dit
_cc_malloc_clear
_cc_ws_alloc
_cc_ws_free
_ccbfv_encrypt_params_get
_ccbfv_param_ctx_init_ws|_CCBFV_PARAM_CTX_INIT_WORKSPACE_N
_cc_disable_dit
_cc_malloc_clear
_cc_ws_alloc
_cc_ws_free
_ccbfv_encrypt_params_get
_ccbfv_param_ctx_init_ws| +|calling||| +|paramcount|0|0| +|`address`|1f1d44dd8|1f1e5c9c0| +|sig|undefined _ccbfv_param_ctx_init(void)|undefined _ccbfv_param_ctx_init(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _ccbfv_param_ctx_init Called Diff + + +```diff +--- _ccbfv_param_ctx_init called ++++ _ccbfv_param_ctx_init called +@@ -1,3 +1 @@ +-_CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N +-_CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N +-_CCPOLYZP_PO2CYC_CTX_INIT_WORKSPACE_N ++_CCBFV_PARAM_CTX_INIT_WORKSPACE_N +``` + + +### _ccbfv_param_ctx_init Diff + + +```diff +--- _ccbfv_param_ctx_init ++++ _ccbfv_param_ctx_init +@@ -1,70 +1,51 @@ + + /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ + + undefined8 _ccbfv_param_ctx_init(undefined8 param_1,undefined8 param_2) + + { + long lVar1; +- ulong uVar2; +- ulong uVar3; +- long lVar4; +- undefined8 uVar5; ++ long lVar2; ++ undefined8 uVar3; + long local_60; +- ulong local_58; ++ undefined8 local_58; + undefined8 uStack_50; + code *local_48; + code *local_40; + undefined local_31; + + local_31 = 0; + if ((_DAT_0 >> 0x39 & 1) != 0) { +- uVar5 = UnkSytemRegRead(3,3,4,2,5); +- if (((uint)uVar5 >> 0x18 & 1) == 0) { ++ uVar3 = UnkSytemRegRead(3,3,4,2,5); ++ if (((uint)uVar3 >> 0x18 & 1) == 0) { + dit = 1; + local_31 = 1; + } + else { + local_31 = 0; + } + } + lVar1 = _ccbfv_encrypt_params_get(param_2); + if (lVar1 == 0) { +- uVar5 = 0xfffffff9; ++ uVar3 = 0xfffffff9; + } + else { +- uVar2 = _CCPOLYZP_PO2CYC_CTX_INIT_WORKSPACE_N(1); +- uVar3 = _CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N(1); +- if (uVar2 <= uVar3) { +- uVar2 = uVar3; +- } +- uVar3 = _CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N(1); +- if (uVar2 <= uVar3) { +- uVar2 = uVar3; +- } +- lVar4 = _cc_malloc_clear(uVar2 << 3); +- local_60 = lVar4; +- uVar2 = _CCPOLYZP_PO2CYC_CTX_INIT_WORKSPACE_N(1); +- uVar3 = _CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N(1); +- if (uVar2 <= uVar3) { +- uVar2 = uVar3; +- } +- uVar3 = _CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N(1); +- local_58 = uVar2; +- if (uVar2 <= uVar3) { +- local_58 = uVar3; +- } ++ lVar2 = _CCBFV_PARAM_CTX_INIT_WORKSPACE_N(*(undefined4 *)(lVar1 + 0x14)); ++ lVar2 = _cc_malloc_clear(lVar2 << 3); ++ local_60 = lVar2; ++ local_58 = _CCBFV_PARAM_CTX_INIT_WORKSPACE_N(*(undefined4 *)(lVar1 + 0x14)); + uStack_50 = 0; + local_48 = _cc_ws_alloc; + local_40 = _cc_ws_free; +- if (lVar4 == 0) { +- uVar5 = 0xfffffff3; ++ if (lVar2 == 0) { ++ uVar3 = 0xfffffff3; + } + else { +- uVar5 = _ccbfv_param_ctx_init_ws(&local_60,param_1,lVar1); ++ uVar3 = _ccbfv_param_ctx_init_ws(&local_60,param_1,lVar1); + (*local_40)(&local_60); + } + } + _cc_disable_dit(&local_31); +- return uVar5; ++ return uVar3; + } + + +``` + + +## _cckyber_polyvec_decompress + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|code,length,address,called| +|ratio|0.51| +|i_ratio|0.44| +|m_ratio|0.72| +|b_ratio|0.81| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_cckyber_polyvec_decompress|_cckyber_polyvec_decompress| +|fullname|_cckyber_polyvec_decompress|_cckyber_polyvec_decompress| +|refcount|2|2| +|`length`|188|136| +|`called`|_cc_abort
_cckyber_poly_decompress_d11|| +|calling|_PQCLEAN_KYBER_CLEAN_indcpa_dec_ws|_PQCLEAN_KYBER_CLEAN_indcpa_dec_ws| +|paramcount|0|0| +|`address`|1f1d683bc|1f1e8039c| +|sig|undefined _cckyber_polyvec_decompress(void)|undefined _cckyber_polyvec_decompress(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _cckyber_polyvec_decompress Called Diff + + +```diff +--- _cckyber_polyvec_decompress called ++++ _cckyber_polyvec_decompress called +@@ -1,2 +0,0 @@ +-_cc_abort +-_cckyber_poly_decompress_d11 +``` + + +### _cckyber_polyvec_decompress Diff + + +```diff +--- _cckyber_polyvec_decompress ++++ _cckyber_polyvec_decompress +@@ -1,33 +1,24 @@ + + void _cckyber_polyvec_decompress(uint *param_1,long param_2,long param_3) + + { + uint uVar1; +- code *pcVar2; ++ ulong uVar2; + ulong uVar3; + ulong uVar4; +- ulong uVar5; + +- uVar1 = param_1[1]; +- pcVar2 = _cckyber_poly_decompress_d10; +- if (uVar1 != 10) { +- if (uVar1 != 0xb) { +- /* WARNING: Subroutine does not return */ +- _cc_abort("Bogus Kyber parameter."); +- } +- pcVar2 = _cckyber_poly_decompress_d11; +- } + if (*param_1 != 0) { ++ uVar2 = 0; + uVar3 = 0; + uVar4 = 0; +- uVar5 = 0; ++ uVar1 = param_1[2]; + do { +- (*pcVar2)(param_2 + (uVar4 & 0xffffff00) * 2,param_3 + uVar3); +- uVar5 = uVar5 + 1; +- uVar4 = uVar4 + 0x100; +- uVar3 = (ulong)((int)uVar3 + (uVar1 & 0xffffff) * 0x20); +- } while (uVar5 < *param_1); ++ (**(code **)(param_1 + 10))(param_2 + (uVar3 & 0xffffff00) * 2,param_3 + uVar2); ++ uVar4 = uVar4 + 1; ++ uVar3 = uVar3 + 0x100; ++ uVar2 = (ulong)((int)uVar2 + (uVar1 & 0xffffff) * 0x20); ++ } while (uVar4 < *param_1); + } + return; + } + + +``` + + +## _ccsha384_vng_arm_compress + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|code,length,address,called| +|ratio|0.01| +|i_ratio|0.0| +|m_ratio|0.29| +|b_ratio|0.29| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_ccsha384_vng_arm_compress|_ccsha384_vng_arm_compress| +|fullname|_ccsha384_vng_arm_compress|_ccsha384_vng_arm_compress| +|refcount|1|1| +|`length`|4|24| +|`called`|_AccelerateCrypto_SHA512_compress|_AccelerateCrypto_SHA512_compress
_AccelerateCrypto_SHA512_compress_hwassist| +|calling||| +|paramcount|0|0| +|`address`|1f1d2bbec|1f1e436ac| +|sig|undefined _ccsha384_vng_arm_compress(void)|undefined _ccsha384_vng_arm_compress(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _ccsha384_vng_arm_compress Called Diff + + +```diff +--- _ccsha384_vng_arm_compress called ++++ _ccsha384_vng_arm_compress called +@@ -1,0 +2 @@ ++_AccelerateCrypto_SHA512_compress_hwassist +``` + + +### _ccsha384_vng_arm_compress Diff + + +```diff +--- _ccsha384_vng_arm_compress ++++ _ccsha384_vng_arm_compress +@@ -1,1168 +1,14 @@ + + /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ + +-void _ccsha384_vng_arm_compress(ulong *param_1,long param_2,undefined (*param_3) [16]) ++void _ccsha384_vng_arm_compress(void) + + { +- bool bVar1; +- long lVar2; +- int iVar3; +- byte bVar4; +- byte bVar5; +- byte bVar6; +- byte bVar7; +- undefined (*pauVar8) [16]; +- undefined (*pauVar9) [16]; +- long *plVar10; +- long *plVar11; +- ulong uVar12; +- ulong uVar13; +- ulong uVar14; +- ulong uVar15; +- ulong uVar16; +- ulong uVar17; +- ulong uVar18; +- ulong uVar19; +- int iVar20; +- undefined auVar21 [16]; +- undefined auVar22 [16]; +- undefined auVar23 [16]; +- undefined auVar24 [16]; +- undefined auVar25 [16]; +- undefined auVar26 [16]; +- undefined auVar27 [16]; +- ulong uVar28; +- undefined auVar29 [16]; +- ulong uVar30; +- ulong uVar31; +- ulong uVar32; +- long lVar33; +- long lVar34; +- long lVar35; +- long lVar36; +- long lVar37; +- ulong uVar38; +- undefined auVar39 [16]; +- undefined auVar40 [16]; +- undefined auVar41 [16]; +- undefined auVar42 [16]; +- undefined auVar43 [16]; +- undefined auVar44 [16]; +- undefined auVar45 [16]; +- ulong uVar46; +- undefined auVar48 [16]; +- ulong uVar47; +- ulong uVar58; +- undefined auVar49 [16]; +- undefined auVar50 [16]; +- undefined auVar51 [16]; +- undefined auVar52 [16]; +- undefined auVar53 [16]; +- undefined auVar54 [16]; +- undefined auVar55 [16]; +- undefined auVar56 [16]; +- undefined auVar57 [16]; +- ulong uVar59; +- ulong uVar60; +- long lStack_80; +- long lStack_78; +- long lStack_70; +- long lStack_68; +- long lStack_60; +- long lStack_58; +- long lStack_50; +- long lStack_48; +- long lStack_40; +- long lStack_38; +- long lStack_30; +- long lStack_28; +- long lStack_20; +- long lStack_18; +- long lStack_10; +- long lStack_8; +- +- if (param_2 == 0) { ++ if (-1 < (int)_DAT_0) { ++ _AccelerateCrypto_SHA512_compress(); + return; + } +- pauVar9 = param_3 + 8; +- auVar21 = NEON_rev64(*param_3,1); +- auVar22 = NEON_rev64(param_3[1],1); +- auVar23 = NEON_rev64(param_3[2],1); +- auVar24 = NEON_rev64(param_3[3],1); +- auVar25 = NEON_rev64(param_3[4],1); +- auVar26 = NEON_rev64(param_3[5],1); +- auVar27 = NEON_rev64(param_3[6],1); +- auVar29 = NEON_rev64(param_3[7],1); +- lStack_80 = auVar21._0_8_ + 0x428a2f98d728ae22; +- lStack_78 = auVar21._8_8_ + 0x7137449123ef65cd; +- plVar10 = (long *)&DAT_0; +- lStack_70 = auVar22._0_8_ + -0x4a3f043013b2c4d1; +- lStack_68 = auVar22._8_8_ + -0x164a245a7e762444; +- lStack_60 = SUB168(_DAT_1,0) + auVar23._0_8_; +- lStack_58 = SUB168(_DAT_1,8) + auVar23._8_8_; +- lStack_50 = SUB168(_DAT_2,0) + auVar24._0_8_; +- lStack_48 = SUB168(_DAT_2,8) + auVar24._8_8_; +- lStack_40 = auVar25._0_8_ + -0x27f855675cfcfdbe; +- lStack_38 = auVar25._8_8_ + 0x12835b0145706fbe; +- lStack_30 = auVar26._0_8_ + 0x243185be4ee4b28c; +- lStack_28 = auVar26._8_8_ + 0x550c7dc3d5ffb4e2; +- lStack_20 = SUB168(_DAT_3,0) + auVar27._0_8_; +- lStack_18 = SUB168(_DAT_3,8) + auVar27._8_8_; +- lStack_10 = SUB168(_DAT_4,0) + auVar29._0_8_; +- lStack_8 = SUB168(_DAT_4,8) + auVar29._8_8_; +- while( true ) { +- uVar12 = *param_1; +- uVar13 = param_1[1]; +- uVar14 = param_1[2]; +- uVar15 = param_1[3]; +- uVar16 = param_1[4]; +- uVar17 = param_1[5]; +- uVar18 = param_1[6]; +- uVar19 = param_1[7]; +- iVar20 = 4; +- do { +- plVar11 = plVar10; +- auVar39 = NEON_ext(auVar25,auVar26,8,1); +- auVar48 = NEON_ext(auVar21,auVar22,8,1); +- uVar28 = auVar29._0_8_; +- uVar31 = uVar28 >> 0x13; +- uVar30 = auVar29._8_8_; +- uVar32 = uVar30 >> 0x13; +- lVar33 = uVar28 << 3; +- lVar36 = uVar30 << 3; +- lVar35 = auVar21._8_8_; +- uVar38 = uVar28 >> 6; +- lVar2 = uVar19 + lStack_80 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 << 0x17)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar46 = auVar48._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar48._8_8_; +- uVar60 = uVar58 >> 1; +- uVar15 = uVar15 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = auVar29[7]; +- bVar5 = auVar29[15]; +- bVar7 = auVar48[7]; +- bVar6 = auVar48[15]; +- auVar50[9] = (byte)((uVar30 >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ (byte)((ulong)lVar36 >> 8); +- auVar50[10] = (byte)((auVar29._9_7_ >> 6) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar50[11] = (byte)((auVar29._10_6_ >> 6) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar50[12] = (byte)((auVar29._11_5_ >> 6) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = uVar28 << 0x2d; +- lVar37 = uVar30 << 0x2d; +- uVar19 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 << 0x1e) ^ +- (uVar12 >> 0x27 | uVar12 << 0x19)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- auVar50[8] = (byte)(uVar30 >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar49[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar48[9]; +- auVar49[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar48[10]; +- auVar49[10] = (byte)((auVar48._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar48[11]; +- auVar49[11] = (byte)((auVar48._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar48[12]; +- auVar49[12] = (byte)((auVar48._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar48[13]; +- auVar49[13] = (byte)((auVar48._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar48[14]; +- auVar49[14] = (byte)((uint3)(auVar48._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar50._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar50[13] = (byte)((auVar29._12_4_ >> 6) >> 8) ^ bVar5 >> 3 ^ (byte)((ulong)lVar36 >> 0x28) +- ^ (byte)((ulong)lVar37 >> 0x28); +- auVar50[14] = (byte)((uint3)(auVar29._13_3_ >> 6) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar50[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar49._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar48[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar48[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar48[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar48[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar48[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar48[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar48[1] +- ))))))); +- auVar49[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar48[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar18 + lStack_78; +- auVar21._0_8_ = auVar21._0_8_ + auVar39._0_8_ + auVar50._0_8_ + auVar49._0_8_; +- auVar21._8_8_ = lVar35 + auVar39._8_8_ + auVar50._8_8_ + auVar49._8_8_; +- lStack_80 = *plVar11 + auVar21._0_8_; +- lStack_78 = plVar11[1] + auVar21._8_8_; +- lVar2 = lVar2 + ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- uVar14 = uVar14 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar19 ^ uVar12 & uVar13); +- auVar39 = NEON_ext(auVar26,auVar27,8,1); +- auVar50 = NEON_ext(auVar22,auVar23,8,1); +- uVar31 = auVar21._0_8_ >> 0x13; +- uVar32 = auVar21._8_8_ >> 0x13; +- lVar33 = auVar21._0_8_ * 8; +- lVar36 = auVar21._8_8_ * 8; +- lVar35 = auVar22._8_8_; +- uVar38 = auVar21._0_8_ >> 6; +- lVar2 = uVar17 + lStack_70 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar13 = uVar13 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar21._0_8_ >> 0x38); +- bVar5 = (byte)(auVar21._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar48[9] = (byte)((auVar21._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar48[10] = (byte)((uint7)(auVar21._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar48[11] = (byte)((uint6)(auVar21._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar48[12] = (byte)((uint5)(auVar21._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar21._0_8_ << 0x2d; +- lVar37 = auVar21._8_8_ << 0x2d; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar12) & uVar18 ^ uVar19 & uVar12); +- auVar48[8] = (byte)(auVar21._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar51[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar51[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar51[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar51[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar51[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar51[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar51[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar48._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar48[13] = (byte)((uint)(auVar21._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar48[14] = (byte)((uint3)(auVar21._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar48[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar51._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar51[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar16 + lStack_68; +- auVar22._0_8_ = auVar22._0_8_ + auVar39._0_8_ + auVar48._0_8_ + auVar51._0_8_; +- auVar22._8_8_ = lVar35 + auVar39._8_8_ + auVar48._8_8_ + auVar51._8_8_; +- lStack_70 = plVar11[2] + auVar22._0_8_; +- lStack_68 = plVar11[3] + auVar22._8_8_; +- lVar2 = lVar2 + ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- uVar12 = uVar12 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- auVar39 = NEON_ext(auVar27,auVar29,8,1); +- auVar50 = NEON_ext(auVar23,auVar24,8,1); +- uVar31 = auVar22._0_8_ >> 0x13; +- uVar32 = auVar22._8_8_ >> 0x13; +- lVar33 = auVar22._0_8_ * 8; +- lVar36 = auVar22._8_8_ * 8; +- lVar35 = auVar23._8_8_; +- uVar38 = auVar22._0_8_ >> 6; +- lVar2 = uVar15 + lStack_60 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar19 = uVar19 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar22._0_8_ >> 0x38); +- bVar5 = (byte)(auVar22._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar40[9] = (byte)((auVar22._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar40[10] = (byte)((uint7)(auVar22._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar40[11] = (byte)((uint6)(auVar22._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar40[12] = (byte)((uint5)(auVar22._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar22._0_8_ << 0x2d; +- lVar37 = auVar22._8_8_ << 0x2d; +- uVar15 = lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- auVar40[8] = (byte)(auVar22._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar52[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar52[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar52[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar52[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar52[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar52[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar52[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar40._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar40[13] = (byte)((uint)(auVar22._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar40[14] = (byte)((uint3)(auVar22._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar40[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar52._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar52[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar14 + lStack_58; +- auVar23._0_8_ = auVar23._0_8_ + auVar39._0_8_ + auVar40._0_8_ + auVar52._0_8_; +- auVar23._8_8_ = lVar35 + auVar39._8_8_ + auVar40._8_8_ + auVar52._8_8_; +- lStack_60 = plVar11[4] + auVar23._0_8_; +- lStack_58 = plVar11[5] + auVar23._8_8_; +- lVar2 = lVar2 + ((uVar19 >> 0xe | uVar19 << 0x32) ^ (uVar19 >> 0x12 | uVar19 << 0x2e) ^ +- (uVar19 >> 0x29 | uVar19 * 0x800000)) + ((uVar12 ^ uVar13) & uVar19 ^ uVar13); +- uVar18 = uVar18 + lVar2; +- uVar14 = lVar2 + ((uVar15 >> 0x1c | uVar15 << 0x24) ^ (uVar15 >> 0x22 | uVar15 * 0x40000000) ^ +- (uVar15 >> 0x27 | uVar15 * 0x2000000)) + +- ((uVar16 ^ uVar17) & uVar15 ^ uVar16 & uVar17); +- auVar39 = NEON_ext(auVar29,auVar21,8,1); +- auVar50 = NEON_ext(auVar24,auVar25,8,1); +- uVar31 = auVar23._0_8_ >> 0x13; +- uVar32 = auVar23._8_8_ >> 0x13; +- lVar33 = auVar23._0_8_ * 8; +- lVar36 = auVar23._8_8_ * 8; +- lVar35 = auVar24._8_8_; +- uVar38 = auVar23._0_8_ >> 6; +- lVar2 = uVar13 + lStack_50 + +- ((uVar18 >> 0xe | uVar18 << 0x32) ^ (uVar18 >> 0x12 | uVar18 << 0x2e) ^ +- (uVar18 >> 0x29 | uVar18 * 0x800000)) + ((uVar19 ^ uVar12) & uVar18 ^ uVar12); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar17 = uVar17 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar23._0_8_ >> 0x38); +- bVar5 = (byte)(auVar23._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar41[9] = (byte)((auVar23._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar41[10] = (byte)((uint7)(auVar23._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar41[11] = (byte)((uint6)(auVar23._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar41[12] = (byte)((uint5)(auVar23._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar23._0_8_ << 0x2d; +- lVar37 = auVar23._8_8_ << 0x2d; +- uVar13 = lVar2 + ((uVar14 >> 0x1c | uVar14 << 0x24) ^ (uVar14 >> 0x22 | uVar14 * 0x40000000) ^ +- (uVar14 >> 0x27 | uVar14 * 0x2000000)) + +- ((uVar15 ^ uVar16) & uVar14 ^ uVar15 & uVar16); +- auVar41[8] = (byte)(auVar23._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar53[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar53[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar53[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar53[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar53[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar53[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar53[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar41._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar41[13] = (byte)((uint)(auVar23._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar41[14] = (byte)((uint3)(auVar23._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar41[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar53._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar53[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar12 + lStack_48; +- auVar24._0_8_ = auVar24._0_8_ + auVar39._0_8_ + auVar41._0_8_ + auVar53._0_8_; +- auVar24._8_8_ = lVar35 + auVar39._8_8_ + auVar41._8_8_ + auVar53._8_8_; +- lStack_50 = plVar11[6] + auVar24._0_8_; +- lStack_48 = plVar11[7] + auVar24._8_8_; +- lVar2 = lVar2 + ((uVar17 >> 0xe | uVar17 << 0x32) ^ (uVar17 >> 0x12 | uVar17 << 0x2e) ^ +- (uVar17 >> 0x29 | uVar17 * 0x800000)) + ((uVar18 ^ uVar19) & uVar17 ^ uVar19); +- uVar16 = uVar16 + lVar2; +- uVar12 = lVar2 + ((uVar13 >> 0x1c | uVar13 << 0x24) ^ (uVar13 >> 0x22 | uVar13 * 0x40000000) ^ +- (uVar13 >> 0x27 | uVar13 * 0x2000000)) + +- ((uVar14 ^ uVar15) & uVar13 ^ uVar14 & uVar15); +- auVar39 = NEON_ext(auVar21,auVar22,8,1); +- auVar50 = NEON_ext(auVar25,auVar26,8,1); +- uVar31 = auVar24._0_8_ >> 0x13; +- uVar32 = auVar24._8_8_ >> 0x13; +- lVar33 = auVar24._0_8_ * 8; +- lVar36 = auVar24._8_8_ * 8; +- lVar35 = auVar25._8_8_; +- uVar38 = auVar24._0_8_ >> 6; +- lVar2 = uVar19 + lStack_40 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 * 0x800000)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar15 = uVar15 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar24._0_8_ >> 0x38); +- bVar5 = (byte)(auVar24._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar42[9] = (byte)((auVar24._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar42[10] = (byte)((uint7)(auVar24._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar42[11] = (byte)((uint6)(auVar24._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar42[12] = (byte)((uint5)(auVar24._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar24._0_8_ << 0x2d; +- lVar37 = auVar24._8_8_ << 0x2d; +- uVar19 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 * 0x40000000) ^ +- (uVar12 >> 0x27 | uVar12 * 0x2000000)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- auVar42[8] = (byte)(auVar24._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar54[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar54[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar54[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar54[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar54[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar54[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar54[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar42._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar42[13] = (byte)((uint)(auVar24._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar42[14] = (byte)((uint3)(auVar24._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar42[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar54._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar54[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar18 + lStack_38; +- auVar25._0_8_ = auVar25._0_8_ + auVar39._0_8_ + auVar42._0_8_ + auVar54._0_8_; +- auVar25._8_8_ = lVar35 + auVar39._8_8_ + auVar42._8_8_ + auVar54._8_8_; +- lStack_40 = plVar11[8] + auVar25._0_8_; +- lStack_38 = plVar11[9] + auVar25._8_8_; +- lVar2 = lVar2 + ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- uVar14 = uVar14 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar19 ^ uVar12 & uVar13); +- auVar39 = NEON_ext(auVar22,auVar23,8,1); +- auVar50 = NEON_ext(auVar26,auVar27,8,1); +- uVar31 = auVar25._0_8_ >> 0x13; +- uVar32 = auVar25._8_8_ >> 0x13; +- lVar33 = auVar25._0_8_ * 8; +- lVar36 = auVar25._8_8_ * 8; +- lVar35 = auVar26._8_8_; +- uVar38 = auVar25._0_8_ >> 6; +- lVar2 = uVar17 + lStack_30 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar13 = uVar13 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar25._0_8_ >> 0x38); +- bVar5 = (byte)(auVar25._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar43[9] = (byte)((auVar25._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar43[10] = (byte)((uint7)(auVar25._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar43[11] = (byte)((uint6)(auVar25._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar43[12] = (byte)((uint5)(auVar25._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar25._0_8_ << 0x2d; +- lVar37 = auVar25._8_8_ << 0x2d; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar12) & uVar18 ^ uVar19 & uVar12); +- auVar43[8] = (byte)(auVar25._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar55[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar55[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar55[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar55[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar55[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar55[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar55[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar43._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar43[13] = (byte)((uint)(auVar25._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar43[14] = (byte)((uint3)(auVar25._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar43[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar55._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar55[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar16 + lStack_28; +- auVar26._0_8_ = auVar26._0_8_ + auVar39._0_8_ + auVar43._0_8_ + auVar55._0_8_; +- auVar26._8_8_ = lVar35 + auVar39._8_8_ + auVar43._8_8_ + auVar55._8_8_; +- lStack_30 = plVar11[10] + auVar26._0_8_; +- lStack_28 = plVar11[0xb] + auVar26._8_8_; +- lVar2 = lVar2 + ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- uVar12 = uVar12 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- auVar39 = NEON_ext(auVar23,auVar24,8,1); +- auVar50 = NEON_ext(auVar27,auVar29,8,1); +- uVar31 = auVar26._0_8_ >> 0x13; +- uVar32 = auVar26._8_8_ >> 0x13; +- lVar33 = auVar26._0_8_ * 8; +- lVar36 = auVar26._8_8_ * 8; +- lVar35 = auVar27._8_8_; +- uVar38 = auVar26._0_8_ >> 6; +- lVar2 = uVar15 + lStack_20 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar19 = uVar19 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar26._0_8_ >> 0x38); +- bVar5 = (byte)(auVar26._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar44[9] = (byte)((auVar26._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar44[10] = (byte)((uint7)(auVar26._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar44[11] = (byte)((uint6)(auVar26._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar44[12] = (byte)((uint5)(auVar26._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar26._0_8_ << 0x2d; +- lVar37 = auVar26._8_8_ << 0x2d; +- uVar15 = lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- auVar44[8] = (byte)(auVar26._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar56[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar56[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar56[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar56[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar56[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar56[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar56[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar44._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar44[13] = (byte)((uint)(auVar26._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar44[14] = (byte)((uint3)(auVar26._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar44[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar56._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar56[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar14 + lStack_18; +- auVar27._0_8_ = auVar27._0_8_ + auVar39._0_8_ + auVar44._0_8_ + auVar56._0_8_; +- auVar27._8_8_ = lVar35 + auVar39._8_8_ + auVar44._8_8_ + auVar56._8_8_; +- lStack_20 = plVar11[0xc] + auVar27._0_8_; +- lStack_18 = plVar11[0xd] + auVar27._8_8_; +- lVar2 = lVar2 + ((uVar19 >> 0xe | uVar19 << 0x32) ^ (uVar19 >> 0x12 | uVar19 << 0x2e) ^ +- (uVar19 >> 0x29 | uVar19 * 0x800000)) + ((uVar12 ^ uVar13) & uVar19 ^ uVar13); +- uVar18 = uVar18 + lVar2; +- uVar14 = lVar2 + ((uVar15 >> 0x1c | uVar15 << 0x24) ^ (uVar15 >> 0x22 | uVar15 * 0x40000000) ^ +- (uVar15 >> 0x27 | uVar15 * 0x2000000)) + +- ((uVar16 ^ uVar17) & uVar15 ^ uVar16 & uVar17); +- auVar39 = NEON_ext(auVar24,auVar25,8,1); +- auVar29 = NEON_ext(auVar29,auVar21,8,1); +- uVar31 = auVar27._0_8_ >> 0x13; +- uVar32 = auVar27._8_8_ >> 0x13; +- lVar35 = auVar27._0_8_ * 8; +- lVar34 = auVar27._8_8_ * 8; +- uVar38 = auVar27._0_8_ >> 6; +- lVar2 = uVar13 + lStack_10 + +- ((uVar18 >> 0xe | uVar18 << 0x32) ^ (uVar18 >> 0x12 | uVar18 << 0x2e) ^ +- (uVar18 >> 0x29 | uVar18 * 0x800000)) + ((uVar19 ^ uVar12) & uVar18 ^ uVar12); +- uVar46 = auVar29._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar29._8_8_; +- uVar60 = uVar58 >> 1; +- uVar17 = uVar17 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar27._0_8_ >> 0x38); +- bVar5 = (byte)(auVar27._8_8_ >> 0x38); +- bVar7 = auVar29[7]; +- bVar6 = auVar29[15]; +- auVar45[9] = (byte)((auVar27._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar34 >> 8); +- auVar45[10] = (byte)((uint7)(auVar27._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar34 >> 0x10); +- auVar45[11] = (byte)((uint6)(auVar27._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar34 >> 0x18); +- auVar45[12] = (byte)((uint5)(auVar27._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar34 >> 0x20); +- lVar33 = auVar27._0_8_ << 0x2d; +- lVar36 = auVar27._8_8_ << 0x2d; +- uVar13 = lVar2 + ((uVar14 >> 0x1c | uVar14 << 0x24) ^ (uVar14 >> 0x22 | uVar14 * 0x40000000) ^ +- (uVar14 >> 0x27 | uVar14 * 0x2000000)) + +- ((uVar15 ^ uVar16) & uVar14 ^ uVar15 & uVar16); +- auVar45[8] = (byte)(auVar27._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar34 ^ bVar5 >> 5; +- auVar57[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar29[9]; +- auVar57[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar29[10]; +- auVar57[10] = (byte)((auVar29._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar29[11]; +- auVar57[11] = (byte)((auVar29._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar29[12]; +- auVar57[12] = (byte)((auVar29._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar29[13]; +- auVar57[13] = (byte)((auVar29._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar29[14]; +- auVar57[14] = (byte)((uint3)(auVar29._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar45._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar35 >> 0x38) ^ (byte)((ulong)lVar33 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar35 >> 0x30) ^ +- (byte)((ulong)lVar33 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar35 >> 0x28) ^ (byte)((ulong)lVar33 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar35 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar35 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar35 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar35 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar35 ^ bVar4 >> 5 +- ))))))); +- auVar45[13] = (byte)((uint)(auVar27._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar34 >> 0x28) ^ (byte)((ulong)lVar36 >> 0x28); +- auVar45[14] = (byte)((uint3)(auVar27._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar34 >> 0x30) ^ +- (byte)((ulong)lVar36 >> 0x30); +- auVar45[15] = bVar5 >> 6 ^ (byte)((ulong)lVar34 >> 0x38) ^ (byte)((ulong)lVar36 >> 0x38); +- auVar57._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar29[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar29[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar29[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar29[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar29[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar29[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar29[1] +- ))))))); +- auVar57[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar29[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar12 + lStack_8; +- auVar29._0_8_ = uVar28 + auVar39._0_8_ + auVar45._0_8_ + auVar57._0_8_; +- auVar29._8_8_ = uVar30 + auVar39._8_8_ + auVar45._8_8_ + auVar57._8_8_; +- lStack_10 = plVar11[0xe] + auVar29._0_8_; +- lStack_8 = plVar11[0xf] + auVar29._8_8_; +- lVar2 = lVar2 + ((uVar17 >> 0xe | uVar17 << 0x32) ^ (uVar17 >> 0x12 | uVar17 << 0x2e) ^ +- (uVar17 >> 0x29 | uVar17 * 0x800000)) + ((uVar18 ^ uVar19) & uVar17 ^ uVar19); +- uVar16 = uVar16 + lVar2; +- uVar12 = lVar2 + ((uVar13 >> 0x1c | uVar13 << 0x24) ^ (uVar13 >> 0x22 | uVar13 * 0x40000000) ^ +- (uVar13 >> 0x27 | uVar13 * 0x2000000)) + +- ((uVar14 ^ uVar15) & uVar13 ^ uVar14 & uVar15); +- iVar3 = iVar20 + -1; +- bVar1 = 0 < iVar20; +- plVar10 = plVar11 + 0x10; +- iVar20 = iVar3; +- } while (iVar3 != 0 && bVar1); +- param_2 = param_2 + -1; +- if (param_2 == 0) break; +- lVar2 = uVar19 + lStack_80 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 * 0x800000)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar15 = uVar15 + lVar2; +- uVar19 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 * 0x40000000) ^ +- (uVar12 >> 0x27 | uVar12 * 0x2000000)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- auVar21 = NEON_rev64(*pauVar9,1); +- lVar2 = uVar18 + lStack_78 + +- ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- lStack_80 = plVar11[-0x40] + auVar21._0_8_; +- lStack_78 = plVar11[-0x3f] + auVar21._8_8_; +- uVar14 = uVar14 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar19 ^ uVar12 & uVar13); +- lVar2 = uVar17 + lStack_70 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar13 = uVar13 + lVar2; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar12) & uVar18 ^ uVar19 & uVar12); +- auVar22 = NEON_rev64(pauVar9[1],1); +- lVar2 = uVar16 + lStack_68 + +- ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- lStack_70 = plVar11[-0x3e] + auVar22._0_8_; +- lStack_68 = plVar11[-0x3d] + auVar22._8_8_; +- uVar12 = uVar12 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- lVar2 = uVar15 + lStack_60 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar19 = uVar19 + lVar2; +- uVar15 = lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- auVar23 = NEON_rev64(pauVar9[2],1); +- lVar2 = uVar14 + lStack_58 + +- ((uVar19 >> 0xe | uVar19 << 0x32) ^ (uVar19 >> 0x12 | uVar19 << 0x2e) ^ +- (uVar19 >> 0x29 | uVar19 * 0x800000)) + ((uVar12 ^ uVar13) & uVar19 ^ uVar13); +- lStack_60 = plVar11[-0x3c] + auVar23._0_8_; +- lStack_58 = plVar11[-0x3b] + auVar23._8_8_; +- uVar18 = uVar18 + lVar2; +- uVar14 = lVar2 + ((uVar15 >> 0x1c | uVar15 << 0x24) ^ (uVar15 >> 0x22 | uVar15 * 0x40000000) ^ +- (uVar15 >> 0x27 | uVar15 * 0x2000000)) + +- ((uVar16 ^ uVar17) & uVar15 ^ uVar16 & uVar17); +- lVar2 = uVar13 + lStack_50 + +- ((uVar18 >> 0xe | uVar18 << 0x32) ^ (uVar18 >> 0x12 | uVar18 << 0x2e) ^ +- (uVar18 >> 0x29 | uVar18 * 0x800000)) + ((uVar19 ^ uVar12) & uVar18 ^ uVar12); +- uVar17 = uVar17 + lVar2; +- uVar13 = lVar2 + ((uVar14 >> 0x1c | uVar14 << 0x24) ^ (uVar14 >> 0x22 | uVar14 * 0x40000000) ^ +- (uVar14 >> 0x27 | uVar14 * 0x2000000)) + +- ((uVar15 ^ uVar16) & uVar14 ^ uVar15 & uVar16); +- auVar24 = NEON_rev64(pauVar9[3],1); +- lVar2 = uVar12 + lStack_48 + +- ((uVar17 >> 0xe | uVar17 << 0x32) ^ (uVar17 >> 0x12 | uVar17 << 0x2e) ^ +- (uVar17 >> 0x29 | uVar17 * 0x800000)) + ((uVar18 ^ uVar19) & uVar17 ^ uVar19); +- lStack_50 = plVar11[-0x3a] + auVar24._0_8_; +- lStack_48 = plVar11[-0x39] + auVar24._8_8_; +- uVar16 = uVar16 + lVar2; +- uVar12 = lVar2 + ((uVar13 >> 0x1c | uVar13 << 0x24) ^ (uVar13 >> 0x22 | uVar13 * 0x40000000) ^ +- (uVar13 >> 0x27 | uVar13 * 0x2000000)) + +- ((uVar14 ^ uVar15) & uVar13 ^ uVar14 & uVar15); +- lVar2 = uVar19 + lStack_40 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 * 0x800000)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar15 = uVar15 + lVar2; +- uVar28 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 * 0x40000000) ^ +- (uVar12 >> 0x27 | uVar12 * 0x2000000)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- auVar25 = NEON_rev64(pauVar9[4],1); +- lVar2 = uVar18 + lStack_38 + +- ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- lStack_40 = plVar11[-0x38] + auVar25._0_8_; +- lStack_38 = plVar11[-0x37] + auVar25._8_8_; +- uVar14 = uVar14 + lVar2; +- uVar30 = lVar2 + ((uVar28 >> 0x1c | uVar28 << 0x24) ^ (uVar28 >> 0x22 | uVar28 * 0x40000000) ^ +- (uVar28 >> 0x27 | uVar28 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar28 ^ uVar12 & uVar13); +- lVar2 = uVar17 + lStack_30 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar13 = uVar13 + lVar2; +- uVar31 = lVar2 + ((uVar30 >> 0x1c | uVar30 << 0x24) ^ (uVar30 >> 0x22 | uVar30 * 0x40000000) ^ +- (uVar30 >> 0x27 | uVar30 * 0x2000000)) + +- ((uVar28 ^ uVar12) & uVar30 ^ uVar28 & uVar12); +- auVar26 = NEON_rev64(pauVar9[5],1); +- lVar2 = uVar16 + lStack_28 + +- ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- lStack_30 = plVar11[-0x36] + auVar26._0_8_; +- lStack_28 = plVar11[-0x35] + auVar26._8_8_; +- uVar12 = uVar12 + lVar2; +- uVar19 = lVar2 + ((uVar31 >> 0x1c | uVar31 << 0x24) ^ (uVar31 >> 0x22 | uVar31 * 0x40000000) ^ +- (uVar31 >> 0x27 | uVar31 * 0x2000000)) + +- ((uVar30 ^ uVar28) & uVar31 ^ uVar30 & uVar28); +- pauVar8 = pauVar9 + 7; +- lVar2 = uVar15 + lStack_20 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar28 = uVar28 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar31 ^ uVar30) & uVar19 ^ uVar31 & uVar30); +- auVar27 = NEON_rev64(pauVar9[6],1); +- lVar2 = uVar14 + lStack_18 + +- ((uVar28 >> 0xe | uVar28 << 0x32) ^ (uVar28 >> 0x12 | uVar28 << 0x2e) ^ +- (uVar28 >> 0x29 | uVar28 * 0x800000)) + ((uVar12 ^ uVar13) & uVar28 ^ uVar13); +- lStack_20 = plVar11[-0x34] + auVar27._0_8_; +- lStack_18 = plVar11[-0x33] + auVar27._8_8_; +- uVar30 = uVar30 + lVar2; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar31) & uVar18 ^ uVar19 & uVar31); +- pauVar9 = pauVar9 + 8; +- lVar2 = uVar13 + lStack_10 + +- ((uVar30 >> 0xe | uVar30 << 0x32) ^ (uVar30 >> 0x12 | uVar30 << 0x2e) ^ +- (uVar30 >> 0x29 | uVar30 * 0x800000)) + ((uVar28 ^ uVar12) & uVar30 ^ uVar12); +- plVar10 = plVar11 + -0x30; +- uVar31 = uVar31 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- auVar29 = NEON_rev64(*pauVar8,1); +- lVar2 = uVar12 + lStack_8 + +- ((uVar31 >> 0xe | uVar31 << 0x32) ^ (uVar31 >> 0x12 | uVar31 << 0x2e) ^ +- (uVar31 >> 0x29 | uVar31 * 0x800000)) + ((uVar30 ^ uVar28) & uVar31 ^ uVar28); +- lStack_10 = plVar11[-0x32] + auVar29._0_8_; +- lStack_8 = plVar11[-0x31] + auVar29._8_8_; +- *param_1 = *param_1 + +- lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- param_1[1] = param_1[1] + uVar16; +- param_1[2] = param_1[2] + uVar17; +- param_1[3] = param_1[3] + uVar18; +- param_1[4] = param_1[4] + uVar19 + lVar2; +- param_1[5] = param_1[5] + uVar31; +- param_1[6] = param_1[6] + uVar30; +- param_1[7] = param_1[7] + uVar28; +- } +- lVar2 = uVar19 + lStack_80 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 * 0x800000)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar15 = uVar15 + lVar2; +- uVar19 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 * 0x40000000) ^ +- (uVar12 >> 0x27 | uVar12 * 0x2000000)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- lVar2 = uVar18 + lStack_78 + +- ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- uVar14 = uVar14 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar19 ^ uVar12 & uVar13); +- lVar2 = uVar17 + lStack_70 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar13 = uVar13 + lVar2; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar12) & uVar18 ^ uVar19 & uVar12); +- lVar2 = uVar16 + lStack_68 + +- ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- uVar12 = uVar12 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- lVar2 = uVar15 + lStack_60 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar19 = uVar19 + lVar2; +- uVar15 = lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- lVar2 = uVar14 + lStack_58 + +- ((uVar19 >> 0xe | uVar19 << 0x32) ^ (uVar19 >> 0x12 | uVar19 << 0x2e) ^ +- (uVar19 >> 0x29 | uVar19 * 0x800000)) + ((uVar12 ^ uVar13) & uVar19 ^ uVar13); +- uVar18 = uVar18 + lVar2; +- uVar14 = lVar2 + ((uVar15 >> 0x1c | uVar15 << 0x24) ^ (uVar15 >> 0x22 | uVar15 * 0x40000000) ^ +- (uVar15 >> 0x27 | uVar15 * 0x2000000)) + +- ((uVar16 ^ uVar17) & uVar15 ^ uVar16 & uVar17); +- lVar2 = uVar13 + lStack_50 + +- ((uVar18 >> 0xe | uVar18 << 0x32) ^ (uVar18 >> 0x12 | uVar18 << 0x2e) ^ +- (uVar18 >> 0x29 | uVar18 * 0x800000)) + ((uVar19 ^ uVar12) & uVar18 ^ uVar12); +- uVar17 = uVar17 + lVar2; +- uVar13 = lVar2 + ((uVar14 >> 0x1c | uVar14 << 0x24) ^ (uVar14 >> 0x22 | uVar14 * 0x40000000) ^ +- (uVar14 >> 0x27 | uVar14 * 0x2000000)) + +- ((uVar15 ^ uVar16) & uVar14 ^ uVar15 & uVar16); +- lVar2 = uVar12 + lStack_48 + +- ((uVar17 >> 0xe | uVar17 << 0x32) ^ (uVar17 >> 0x12 | uVar17 << 0x2e) ^ +- (uVar17 >> 0x29 | uVar17 * 0x800000)) + ((uVar18 ^ uVar19) & uVar17 ^ uVar19); +- uVar16 = uVar16 + lVar2; +- uVar12 = lVar2 + ((uVar13 >> 0x1c | uVar13 << 0x24) ^ (uVar13 >> 0x22 | uVar13 * 0x40000000) ^ +- (uVar13 >> 0x27 | uVar13 * 0x2000000)) + +- ((uVar14 ^ uVar15) & uVar13 ^ uVar14 & uVar15); +- lVar2 = uVar19 + lStack_40 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 * 0x800000)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar15 = uVar15 + lVar2; +- uVar28 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 * 0x40000000) ^ +- (uVar12 >> 0x27 | uVar12 * 0x2000000)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- lVar2 = uVar18 + lStack_38 + +- ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- uVar14 = uVar14 + lVar2; +- uVar30 = lVar2 + ((uVar28 >> 0x1c | uVar28 << 0x24) ^ (uVar28 >> 0x22 | uVar28 * 0x40000000) ^ +- (uVar28 >> 0x27 | uVar28 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar28 ^ uVar12 & uVar13); +- lVar2 = uVar17 + lStack_30 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar13 = uVar13 + lVar2; +- uVar31 = lVar2 + ((uVar30 >> 0x1c | uVar30 << 0x24) ^ (uVar30 >> 0x22 | uVar30 * 0x40000000) ^ +- (uVar30 >> 0x27 | uVar30 * 0x2000000)) + +- ((uVar28 ^ uVar12) & uVar30 ^ uVar28 & uVar12); +- lVar2 = uVar16 + lStack_28 + +- ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- uVar12 = uVar12 + lVar2; +- uVar19 = lVar2 + ((uVar31 >> 0x1c | uVar31 << 0x24) ^ (uVar31 >> 0x22 | uVar31 * 0x40000000) ^ +- (uVar31 >> 0x27 | uVar31 * 0x2000000)) + +- ((uVar30 ^ uVar28) & uVar31 ^ uVar30 & uVar28); +- lVar2 = uVar15 + lStack_20 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar28 = uVar28 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar31 ^ uVar30) & uVar19 ^ uVar31 & uVar30); +- lVar2 = uVar14 + lStack_18 + +- ((uVar28 >> 0xe | uVar28 << 0x32) ^ (uVar28 >> 0x12 | uVar28 << 0x2e) ^ +- (uVar28 >> 0x29 | uVar28 * 0x800000)) + ((uVar12 ^ uVar13) & uVar28 ^ uVar13); +- uVar30 = uVar30 + lVar2; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar31) & uVar18 ^ uVar19 & uVar31); +- lVar2 = uVar13 + lStack_10 + +- ((uVar30 >> 0xe | uVar30 << 0x32) ^ (uVar30 >> 0x12 | uVar30 << 0x2e) ^ +- (uVar30 >> 0x29 | uVar30 * 0x800000)) + ((uVar28 ^ uVar12) & uVar30 ^ uVar12); +- uVar31 = uVar31 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- lVar2 = uVar12 + lStack_8 + +- ((uVar31 >> 0xe | uVar31 << 0x32) ^ (uVar31 >> 0x12 | uVar31 << 0x2e) ^ +- (uVar31 >> 0x29 | uVar31 * 0x800000)) + ((uVar30 ^ uVar28) & uVar31 ^ uVar28); +- *param_1 = *param_1 + +- lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- param_1[1] = param_1[1] + uVar16; +- param_1[2] = param_1[2] + uVar17; +- param_1[3] = param_1[3] + uVar18; +- param_1[4] = param_1[4] + uVar19 + lVar2; +- param_1[5] = param_1[5] + uVar31; +- param_1[6] = param_1[6] + uVar30; +- param_1[7] = param_1[7] + uVar28; ++ _AccelerateCrypto_SHA512_compress_hwassist(); + return; + } + + +``` + + +## _PQCLEAN_KYBER_CLEAN_indcpa_enc_ws + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|code,length,address| +|ratio|0.29| +|i_ratio|0.4| +|m_ratio|0.63| +|b_ratio|0.78| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_PQCLEAN_KYBER_CLEAN_indcpa_enc_ws|_PQCLEAN_KYBER_CLEAN_indcpa_enc_ws| +|fullname|_PQCLEAN_KYBER_CLEAN_indcpa_enc_ws|_PQCLEAN_KYBER_CLEAN_indcpa_enc_ws| +|refcount|3|3| +|`length`|892|848| +|called|
Expand for full list:
_PQCLEAN_KYBER_CLEAN_gen_matrix
_cc_cmp_safe
_cckyber_ntt_inverse
_cckyber_poly_add
_cckyber_poly_compress
_cckyber_poly_from_msg
_cckyber_poly_getnoise
_cckyber_poly_reduce
_cckyber_polyvec_add
_cckyber_polyvec_basemul
_cckyber_polyvec_compress
_cckyber_polyvec_decode
_cckyber_polyvec_encode
_cckyber_polyvec_ntt_forward
_cckyber_polyvec_reduce
|
Expand for full list:
_PQCLEAN_KYBER_CLEAN_gen_matrix
_cc_cmp_safe
_cckyber_ntt_inverse
_cckyber_poly_add
_cckyber_poly_compress
_cckyber_poly_from_msg
_cckyber_poly_getnoise
_cckyber_poly_reduce
_cckyber_polyvec_add
_cckyber_polyvec_basemul
_cckyber_polyvec_compress
_cckyber_polyvec_decode
_cckyber_polyvec_encode
_cckyber_polyvec_ntt_forward
_cckyber_polyvec_reduce
| +|calling|_PQCLEAN_KYBER_CLEAN_crypto_kem_dec
_PQCLEAN_KYBER_CLEAN_indcpa_enc|_PQCLEAN_KYBER_CLEAN_crypto_kem_dec
_PQCLEAN_KYBER_CLEAN_indcpa_enc| +|paramcount|0|0| +|`address`|1f1d465e0|1f1e5e180| +|sig|undefined _PQCLEAN_KYBER_CLEAN_indcpa_enc_ws(void)|undefined _PQCLEAN_KYBER_CLEAN_indcpa_enc_ws(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _PQCLEAN_KYBER_CLEAN_indcpa_enc_ws Diff + + +```diff +--- _PQCLEAN_KYBER_CLEAN_indcpa_enc_ws ++++ _PQCLEAN_KYBER_CLEAN_indcpa_enc_ws +@@ -1,121 +1,112 @@ + +-/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ +- +-void _PQCLEAN_KYBER_CLEAN_indcpa_enc_ws +- (long param_1,uint *param_2,long param_3,undefined8 param_4,long param_5, +- undefined8 param_6) ++undefined8 ++_PQCLEAN_KYBER_CLEAN_indcpa_enc_ws ++ (long param_1,uint *param_2,long param_3,undefined8 param_4,long param_5, ++ undefined8 param_6) + + { + undefined8 *puVar1; +- int iVar2; +- undefined8 uVar3; ++ undefined8 *puVar2; ++ int iVar3; + undefined8 uVar4; + undefined8 uVar5; + long lVar6; +- long lVar7; ++ undefined8 uVar7; + long lVar8; +- undefined8 uVar9; +- long lVar10; +- uint uVar11; +- undefined8 uVar12; +- ulong uVar13; +- ulong uVar14; +- long lVar15; ++ long lVar9; ++ undefined8 uVar10; ++ long lVar11; ++ uint uVar12; ++ undefined8 uVar13; ++ long lVar14; ++ ulong uVar15; + ulong uVar16; +- undefined8 local_90; +- undefined8 uStack_88; +- undefined8 uStack_80; +- undefined8 uStack_78; +- long local_68; ++ ulong uVar17; ++ undefined8 uVar18; ++ undefined8 uVar19; ++ undefined8 uVar20; + +- local_68 = *_DAT_0; +- uVar14 = (ulong)*param_2; +- uVar12 = *(undefined8 *)(param_1 + 0x10); +- uVar3 = (**(code **)(param_1 + 0x18))(param_1,0x40); ++ uVar17 = (ulong)*param_2; ++ uVar13 = *(undefined8 *)(param_1 + 0x10); + uVar4 = (**(code **)(param_1 + 0x18))(param_1,0x40); + uVar5 = (**(code **)(param_1 + 0x18))(param_1,0x40); +- lVar15 = uVar14 * 0x40; +- lVar6 = (**(code **)(param_1 + 0x18))(param_1,lVar15); +- lVar7 = (**(code **)(param_1 + 0x18))(param_1,lVar15); +- lVar8 = (**(code **)(param_1 + 0x18))(param_1,lVar15); +- uVar9 = (**(code **)(param_1 + 0x18))(param_1,lVar15); +- lVar15 = (**(code **)(param_1 + 0x18))(param_1,lVar15 * uVar14 & 0x1fffffffffffffc0); +- _cckyber_polyvec_decode(param_2,uVar9,param_5); ++ lVar14 = uVar17 * 0x40; ++ lVar6 = (**(code **)(param_1 + 0x18))(param_1,lVar14); ++ uVar7 = (**(code **)(param_1 + 0x18))(param_1,0x40); ++ lVar8 = (**(code **)(param_1 + 0x18))(param_1,lVar14); ++ lVar9 = (**(code **)(param_1 + 0x18))(param_1,lVar14); ++ uVar10 = (**(code **)(param_1 + 0x18))(param_1,lVar14); ++ lVar14 = (**(code **)(param_1 + 0x18))(param_1,lVar14 * uVar17 & 0x1fffffffffffffc0); ++ _cckyber_polyvec_decode(param_2,uVar10,param_5); + puVar1 = (undefined8 *)(param_5 + (ulong)(*param_2 * 0x180)); +- uStack_88 = puVar1[1]; +- local_90 = *puVar1; +- uStack_78 = puVar1[3]; +- uStack_80 = puVar1[2]; +- lVar10 = (**(code **)(param_1 + 0x18))(param_1,uVar14 * 0x30 | 4); +- _cckyber_polyvec_encode(param_2,lVar10,uVar9); +- puVar1 = (undefined8 *)(lVar10 + (ulong)(*param_2 * 0x180)); +- puVar1[1] = uStack_88; +- *puVar1 = local_90; +- puVar1[3] = uStack_78; +- puVar1[2] = uStack_80; +- iVar2 = _cc_cmp_safe(*param_2 * 0x180 | 0x20,lVar10,param_5); +- if (iVar2 == 0) { +- _cckyber_poly_from_msg(uVar4,param_4); +- _PQCLEAN_KYBER_CLEAN_gen_matrix(param_2,lVar15,&local_90,1); ++ lVar11 = (**(code **)(param_1 + 0x18))(param_1,uVar17 * 0x30 | 4); ++ _cckyber_polyvec_encode(param_2,lVar11,uVar10); ++ puVar2 = (undefined8 *)(lVar11 + (ulong)(*param_2 * 0x180)); ++ uVar20 = *puVar1; ++ uVar19 = puVar1[3]; ++ uVar18 = puVar1[2]; ++ puVar2[1] = puVar1[1]; ++ *puVar2 = uVar20; ++ puVar2[3] = uVar19; ++ puVar2[2] = uVar18; ++ iVar3 = _cc_cmp_safe(*param_2 * 0x180 | 0x20,lVar11,param_5); ++ if (iVar3 == 0) { ++ _PQCLEAN_KYBER_CLEAN_gen_matrix(param_2,lVar14,puVar1,1); + if (*param_2 == 0) { +- uVar14 = 0; ++ uVar17 = 0; + } + else { +- uVar13 = 0; +- uVar14 = 0; ++ uVar15 = 0; ++ uVar17 = 0; + do { +- _cckyber_poly_getnoise(lVar7 + (uVar13 & 0xffffff00) * 2,param_6,(uint)uVar14 & 0xff); +- uVar14 = uVar14 + 1; +- uVar13 = uVar13 + 0x100; +- } while (uVar14 < *param_2); ++ _cckyber_poly_getnoise(lVar8 + (uVar15 & 0xffffff00) * 2,param_6,(uint)uVar17 & 0xff); ++ uVar17 = uVar17 + 1; ++ uVar15 = uVar15 + 0x100; ++ } while (uVar17 < *param_2); + if (*param_2 != 0) { + uVar16 = 0; +- uVar13 = 0; ++ uVar15 = 0; + do { +- uVar11 = (uint)uVar14; +- uVar14 = (ulong)(uVar11 + 1); +- _cckyber_poly_getnoise(lVar8 + (uVar16 & 0xffffff00) * 2,param_6,uVar11 & 0xff); +- uVar13 = uVar13 + 1; ++ uVar12 = (uint)uVar17; ++ uVar17 = (ulong)(uVar12 + 1); ++ _cckyber_poly_getnoise(lVar6 + (uVar16 & 0xffffff00) * 2,param_6,uVar12 & 0xff); ++ uVar15 = uVar15 + 1; + uVar16 = uVar16 + 0x100; +- } while (uVar13 < *param_2); ++ } while (uVar15 < *param_2); + } + } +- _cckyber_poly_getnoise(uVar5,param_6,(uint)uVar14 & 0xff); +- _cckyber_polyvec_ntt_forward(param_2,lVar7); +- uVar14 = (ulong)*param_2; ++ _cckyber_poly_getnoise(uVar7,param_6,(uint)uVar17 & 0xff); ++ _cckyber_poly_from_msg(uVar5,param_4); ++ _cckyber_polyvec_ntt_forward(param_2,lVar8); ++ uVar17 = (ulong)*param_2; + if (*param_2 != 0) { + uVar16 = 0; +- uVar13 = 0; ++ uVar15 = 0; + do { +- lVar10 = lVar6 + uVar16 * 2; ++ lVar11 = lVar9 + uVar16 * 2; + _cckyber_polyvec_basemul +- (param_2,lVar10,lVar15 + (ulong)(uint)((int)uVar16 * (int)uVar14) * 2,lVar7); +- _cckyber_ntt_inverse(lVar10); +- uVar13 = uVar13 + 1; +- uVar14 = (ulong)*param_2; ++ (param_2,lVar11,lVar14 + (ulong)(uint)((int)uVar16 * (int)uVar17) * 2,lVar8); ++ _cckyber_ntt_inverse(lVar11); ++ uVar15 = uVar15 + 1; ++ uVar17 = (ulong)*param_2; + uVar16 = (ulong)((int)uVar16 + 0x100); +- } while (uVar13 < uVar14); ++ } while (uVar15 < uVar17); + } +- _cckyber_polyvec_basemul(param_2,uVar3,uVar9,lVar7); +- _cckyber_ntt_inverse(uVar3); +- _cckyber_polyvec_add(param_2,lVar6,lVar6,lVar8); +- _cckyber_polyvec_reduce(param_2,lVar6); +- _cckyber_poly_add(uVar3,uVar3,uVar5); +- _cckyber_poly_add(uVar3,uVar3,uVar4); +- _cckyber_poly_reduce(uVar3); +- _cckyber_polyvec_compress(param_2,param_3,lVar6); +- _cckyber_poly_compress(param_2,param_3 + (ulong)((*param_2 * param_2[1] & 0xffffff) << 5),uVar3) +- ; +- uVar3 = 0; +- *(undefined8 *)(param_1 + 0x10) = uVar12; ++ _cckyber_polyvec_add(param_2,lVar9,lVar9,lVar6); ++ _cckyber_polyvec_reduce(param_2,lVar9); ++ _cckyber_polyvec_basemul(param_2,uVar4,uVar10,lVar8); ++ _cckyber_ntt_inverse(uVar4); ++ _cckyber_poly_add(uVar4,uVar4,uVar7); ++ _cckyber_poly_add(uVar4,uVar4,uVar5); ++ _cckyber_poly_reduce(uVar4); ++ _cckyber_polyvec_compress(param_2,param_3,lVar9); ++ _cckyber_poly_compress(param_2,param_3 + (ulong)(param_2[2] * *param_2 * 0x20),uVar4); ++ uVar4 = 0; ++ *(undefined8 *)(param_1 + 0x10) = uVar13; + } + else { +- uVar3 = 0xfffffff9; ++ uVar4 = 0xfffffff9; + } +- if (*_DAT_0 != local_68) { +- func_0x0001f2769220(uVar3); +- return; +- } +- return; ++ return uVar4; + } + + +``` + + +## _ccrsa_decrypt_eme_pkcs1v15_blinded_ws + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|code,length,address,called| +|ratio|0.97| +|i_ratio|0.64| +|m_ratio|0.94| +|b_ratio|0.95| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_ccrsa_decrypt_eme_pkcs1v15_blinded_ws|_ccrsa_decrypt_eme_pkcs1v15_blinded_ws| +|fullname|_ccrsa_decrypt_eme_pkcs1v15_blinded_ws|_ccrsa_decrypt_eme_pkcs1v15_blinded_ws| +|refcount|2|2| +|`length`|248|264| +|`called`|_ccn_read_uint
_ccrsa_block_size
_ccrsa_ctx_public
_ccrsa_eme_pkcs1v15_decode
_ccrsa_priv_crypt_blinded_ws|_ccn_read_uint
_ccrsa_block_size
_ccrsa_ctx_public
_ccrsa_eme_pkcs1v15_decode_safe_ws
_ccrsa_priv_crypt_blinded_ws| +|calling|_ccrsa_decrypt_eme_pkcs1v15|_ccrsa_decrypt_eme_pkcs1v15| +|paramcount|0|0| +|`address`|1f1d50aa0|1f1e686e0| +|sig|undefined _ccrsa_decrypt_eme_pkcs1v15_blinded_ws(void)|undefined _ccrsa_decrypt_eme_pkcs1v15_blinded_ws(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _ccrsa_decrypt_eme_pkcs1v15_blinded_ws Called Diff + + +```diff +--- _ccrsa_decrypt_eme_pkcs1v15_blinded_ws called ++++ _ccrsa_decrypt_eme_pkcs1v15_blinded_ws called +@@ -4 +4 @@ +-_ccrsa_eme_pkcs1v15_decode ++_ccrsa_eme_pkcs1v15_decode_safe_ws +``` + + +### _ccrsa_decrypt_eme_pkcs1v15_blinded_ws Diff + + +```diff +--- _ccrsa_decrypt_eme_pkcs1v15_blinded_ws ++++ _ccrsa_decrypt_eme_pkcs1v15_blinded_ws +@@ -1,38 +1,38 @@ + + undefined8 + _ccrsa_decrypt_eme_pkcs1v15_blinded_ws + (long param_1,undefined8 param_2,undefined8 *param_3,ulong *param_4,undefined8 param_5, + undefined8 param_6,undefined8 param_7) + + { + int iVar1; + ulong uVar2; + undefined8 uVar3; + undefined8 uVar4; + undefined8 uVar5; + + _ccrsa_ctx_public(param_3); + uVar2 = _ccrsa_block_size(); + if (*param_4 < uVar2) { + uVar3 = 0xffffffe9; + } + else { + uVar3 = *param_3; + *param_4 = uVar2; + uVar5 = *(undefined8 *)(param_1 + 0x10); + uVar4 = (**(code **)(param_1 + 0x18))(param_1,uVar3); + iVar1 = _ccn_read_uint(uVar3,uVar4,param_6,param_7); + if (iVar1 == 0) { + uVar3 = _ccrsa_priv_crypt_blinded_ws(param_1,param_2,param_3,uVar4,uVar4); + if ((int)uVar3 == 0) { +- uVar3 = _ccrsa_eme_pkcs1v15_decode(param_4,param_5,uVar2,uVar4); ++ uVar3 = _ccrsa_eme_pkcs1v15_decode_safe_ws(param_1,param_3,param_4,param_5,uVar2,uVar4); + } + } + else { + uVar3 = 0xffffffe9; + } + *(undefined8 *)(param_1 + 0x10) = uVar5; + } + return uVar3; + } + + +``` + + +## _cckyber_polyvec_compress + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|code,length,address,called| +|ratio|0.51| +|i_ratio|0.44| +|m_ratio|0.72| +|b_ratio|0.81| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_cckyber_polyvec_compress|_cckyber_polyvec_compress| +|fullname|_cckyber_polyvec_compress|_cckyber_polyvec_compress| +|refcount|2|2| +|`length`|188|136| +|`called`|_cc_abort
_cckyber_poly_compress_d11|| +|calling|_PQCLEAN_KYBER_CLEAN_indcpa_enc_ws|_PQCLEAN_KYBER_CLEAN_indcpa_enc_ws| +|paramcount|0|0| +|`address`|1f1d68300|1f1e80314| +|sig|undefined _cckyber_polyvec_compress(void)|undefined _cckyber_polyvec_compress(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _cckyber_polyvec_compress Called Diff + + +```diff +--- _cckyber_polyvec_compress called ++++ _cckyber_polyvec_compress called +@@ -1,2 +0,0 @@ +-_cc_abort +-_cckyber_poly_compress_d11 +``` + + +### _cckyber_polyvec_compress Diff + + +```diff +--- _cckyber_polyvec_compress ++++ _cckyber_polyvec_compress +@@ -1,33 +1,24 @@ + + void _cckyber_polyvec_compress(uint *param_1,long param_2,long param_3) + + { + uint uVar1; +- code *pcVar2; ++ ulong uVar2; + ulong uVar3; + ulong uVar4; +- ulong uVar5; + +- uVar1 = param_1[1]; +- pcVar2 = _cckyber_poly_compress_d10; +- if (uVar1 != 10) { +- if (uVar1 != 0xb) { +- /* WARNING: Subroutine does not return */ +- _cc_abort("Bogus Kyber parameter."); +- } +- pcVar2 = _cckyber_poly_compress_d11; +- } + if (*param_1 != 0) { ++ uVar2 = 0; + uVar3 = 0; + uVar4 = 0; +- uVar5 = 0; ++ uVar1 = param_1[2]; + do { +- (*pcVar2)(param_2 + uVar3,param_3 + (uVar4 & 0xffffff00) * 2); +- uVar5 = uVar5 + 1; +- uVar4 = uVar4 + 0x100; +- uVar3 = (ulong)((int)uVar3 + (uVar1 & 0xffffff) * 0x20); +- } while (uVar5 < *param_1); ++ (**(code **)(param_1 + 8))(param_2 + uVar2,param_3 + (uVar3 & 0xffffff00) * 2); ++ uVar4 = uVar4 + 1; ++ uVar3 = uVar3 + 0x100; ++ uVar2 = (ulong)((int)uVar2 + (uVar1 & 0xffffff) * 0x20); ++ } while (uVar4 < *param_1); + } + return; + } + + +``` + + +## _PQCLEAN_KYBER_CLEAN_crypto_kem_keypair + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|code,length,address,called| +|ratio|0.24| +|i_ratio|0.29| +|m_ratio|0.69| +|b_ratio|0.69| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair|_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair| +|fullname|_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair|_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair| +|refcount|3|3| +|`length`|272|144| +|`called`|_PQCLEAN_KYBER_CLEAN_indcpa_keypair
_ccdigest
_ccsha3_256_di
_memcpy|_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair_coins| +|calling|_cckem_kyber1024_generate_key
_cckem_kyber768_generate_key|_cckem_kyber1024_generate_key
_cckem_kyber768_generate_key| +|paramcount|0|0| +|`address`|1f1d346a4|1f1e4c230| +|sig|undefined _PQCLEAN_KYBER_CLEAN_crypto_kem_keypair(void)|undefined _PQCLEAN_KYBER_CLEAN_crypto_kem_keypair(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _PQCLEAN_KYBER_CLEAN_crypto_kem_keypair Called Diff + + +```diff +--- _PQCLEAN_KYBER_CLEAN_crypto_kem_keypair called ++++ _PQCLEAN_KYBER_CLEAN_crypto_kem_keypair called +@@ -1,4 +1 @@ +-_PQCLEAN_KYBER_CLEAN_indcpa_keypair +-_ccdigest +-_ccsha3_256_di +-_memcpy ++_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair_coins +``` + + +### _PQCLEAN_KYBER_CLEAN_crypto_kem_keypair Diff + + +```diff +--- _PQCLEAN_KYBER_CLEAN_crypto_kem_keypair ++++ _PQCLEAN_KYBER_CLEAN_crypto_kem_keypair +@@ -1,39 +1,23 @@ + + /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ + +-undefined8 +-_PQCLEAN_KYBER_CLEAN_crypto_kem_keypair(int *param_1,void *param_2,long param_3,code **param_4) ++void _PQCLEAN_KYBER_CLEAN_crypto_kem_keypair ++ (undefined8 param_1,undefined8 param_2,undefined8 param_3,code **param_4) + + { +- uint uVar1; +- undefined8 uVar2; +- undefined8 uVar3; +- undefined auStack_88 [32]; +- undefined8 local_68; +- undefined8 uStack_60; +- undefined8 local_58; +- undefined8 uStack_50; +- long local_48; ++ int iVar1; ++ undefined auStack_78 [64]; ++ long local_38; + +- local_48 = *_DAT_0; +- uVar2 = (**param_4)(param_4,0x40,auStack_88); +- if ((int)uVar2 == 0) { +- _PQCLEAN_KYBER_CLEAN_indcpa_keypair(param_1,param_2,param_3,auStack_88); +- _memcpy((void *)(param_3 + (ulong)(uint)(*param_1 * 0x180)),param_2, +- (ulong)(*param_1 * 0x180 | 0x20)); +- uVar3 = _ccsha3_256_di(); +- uVar1 = *param_1 * 0x180 | 0x20; +- _ccdigest(uVar3,uVar1,param_2,param_3 + (ulong)(uVar1 + *param_1 * 0x180 | 0x40) + -0x40); +- param_3 = param_3 + (ulong)(*param_1 * 0x300 | 0x60); +- *(undefined8 *)(param_3 + -0x18) = uStack_60; +- *(undefined8 *)(param_3 + -0x20) = local_68; +- *(undefined8 *)(param_3 + -8) = uStack_50; +- *(undefined8 *)(param_3 + -0x10) = local_58; ++ local_38 = *_DAT_0; ++ iVar1 = (**param_4)(param_4,0x40,auStack_78); ++ if (iVar1 == 0) { ++ _PQCLEAN_KYBER_CLEAN_crypto_kem_keypair_coins(param_1,param_2,param_3,auStack_78); + } +- if (*_DAT_0 == local_48) { +- return uVar2; ++ if (*_DAT_0 == local_38) { ++ return; + } +- uVar2 = func_0x0001f2769220(); +- return uVar2; ++ func_0x0001f2881250(); ++ return; + } + + +``` + + +## _ccsha512_256_vng_arm_compress + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|code,length,address,called| +|ratio|0.01| +|i_ratio|0.0| +|m_ratio|0.29| +|b_ratio|0.29| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_ccsha512_256_vng_arm_compress|_ccsha512_256_vng_arm_compress| +|fullname|_ccsha512_256_vng_arm_compress|_ccsha512_256_vng_arm_compress| +|refcount|1|1| +|`length`|4|24| +|`called`|_AccelerateCrypto_SHA512_compress|_AccelerateCrypto_SHA512_compress
_AccelerateCrypto_SHA512_compress_hwassist| +|calling||| +|paramcount|0|0| +|`address`|1f1d65fd0|1f1e7df94| +|sig|undefined _ccsha512_256_vng_arm_compress(void)|undefined _ccsha512_256_vng_arm_compress(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _ccsha512_256_vng_arm_compress Called Diff + + +```diff +--- _ccsha512_256_vng_arm_compress called ++++ _ccsha512_256_vng_arm_compress called +@@ -1,0 +2 @@ ++_AccelerateCrypto_SHA512_compress_hwassist +``` + + +### _ccsha512_256_vng_arm_compress Diff + + +```diff +--- _ccsha512_256_vng_arm_compress ++++ _ccsha512_256_vng_arm_compress +@@ -1,1168 +1,14 @@ + + /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ + +-void _ccsha512_256_vng_arm_compress(ulong *param_1,long param_2,undefined (*param_3) [16]) ++void _ccsha512_256_vng_arm_compress(void) + + { +- bool bVar1; +- long lVar2; +- int iVar3; +- byte bVar4; +- byte bVar5; +- byte bVar6; +- byte bVar7; +- undefined (*pauVar8) [16]; +- undefined (*pauVar9) [16]; +- long *plVar10; +- long *plVar11; +- ulong uVar12; +- ulong uVar13; +- ulong uVar14; +- ulong uVar15; +- ulong uVar16; +- ulong uVar17; +- ulong uVar18; +- ulong uVar19; +- int iVar20; +- undefined auVar21 [16]; +- undefined auVar22 [16]; +- undefined auVar23 [16]; +- undefined auVar24 [16]; +- undefined auVar25 [16]; +- undefined auVar26 [16]; +- undefined auVar27 [16]; +- ulong uVar28; +- undefined auVar29 [16]; +- ulong uVar30; +- ulong uVar31; +- ulong uVar32; +- long lVar33; +- long lVar34; +- long lVar35; +- long lVar36; +- long lVar37; +- ulong uVar38; +- undefined auVar39 [16]; +- undefined auVar40 [16]; +- undefined auVar41 [16]; +- undefined auVar42 [16]; +- undefined auVar43 [16]; +- undefined auVar44 [16]; +- undefined auVar45 [16]; +- ulong uVar46; +- undefined auVar48 [16]; +- ulong uVar47; +- ulong uVar58; +- undefined auVar49 [16]; +- undefined auVar50 [16]; +- undefined auVar51 [16]; +- undefined auVar52 [16]; +- undefined auVar53 [16]; +- undefined auVar54 [16]; +- undefined auVar55 [16]; +- undefined auVar56 [16]; +- undefined auVar57 [16]; +- ulong uVar59; +- ulong uVar60; +- long lStack_80; +- long lStack_78; +- long lStack_70; +- long lStack_68; +- long lStack_60; +- long lStack_58; +- long lStack_50; +- long lStack_48; +- long lStack_40; +- long lStack_38; +- long lStack_30; +- long lStack_28; +- long lStack_20; +- long lStack_18; +- long lStack_10; +- long lStack_8; +- +- if (param_2 == 0) { ++ if (-1 < (int)_DAT_0) { ++ _AccelerateCrypto_SHA512_compress(); + return; + } +- pauVar9 = param_3 + 8; +- auVar21 = NEON_rev64(*param_3,1); +- auVar22 = NEON_rev64(param_3[1],1); +- auVar23 = NEON_rev64(param_3[2],1); +- auVar24 = NEON_rev64(param_3[3],1); +- auVar25 = NEON_rev64(param_3[4],1); +- auVar26 = NEON_rev64(param_3[5],1); +- auVar27 = NEON_rev64(param_3[6],1); +- auVar29 = NEON_rev64(param_3[7],1); +- lStack_80 = auVar21._0_8_ + 0x428a2f98d728ae22; +- lStack_78 = auVar21._8_8_ + 0x7137449123ef65cd; +- plVar10 = (long *)&DAT_0; +- lStack_70 = auVar22._0_8_ + -0x4a3f043013b2c4d1; +- lStack_68 = auVar22._8_8_ + -0x164a245a7e762444; +- lStack_60 = SUB168(_DAT_1,0) + auVar23._0_8_; +- lStack_58 = SUB168(_DAT_1,8) + auVar23._8_8_; +- lStack_50 = SUB168(_DAT_2,0) + auVar24._0_8_; +- lStack_48 = SUB168(_DAT_2,8) + auVar24._8_8_; +- lStack_40 = auVar25._0_8_ + -0x27f855675cfcfdbe; +- lStack_38 = auVar25._8_8_ + 0x12835b0145706fbe; +- lStack_30 = auVar26._0_8_ + 0x243185be4ee4b28c; +- lStack_28 = auVar26._8_8_ + 0x550c7dc3d5ffb4e2; +- lStack_20 = SUB168(_DAT_3,0) + auVar27._0_8_; +- lStack_18 = SUB168(_DAT_3,8) + auVar27._8_8_; +- lStack_10 = SUB168(_DAT_4,0) + auVar29._0_8_; +- lStack_8 = SUB168(_DAT_4,8) + auVar29._8_8_; +- while( true ) { +- uVar12 = *param_1; +- uVar13 = param_1[1]; +- uVar14 = param_1[2]; +- uVar15 = param_1[3]; +- uVar16 = param_1[4]; +- uVar17 = param_1[5]; +- uVar18 = param_1[6]; +- uVar19 = param_1[7]; +- iVar20 = 4; +- do { +- plVar11 = plVar10; +- auVar39 = NEON_ext(auVar25,auVar26,8,1); +- auVar48 = NEON_ext(auVar21,auVar22,8,1); +- uVar28 = auVar29._0_8_; +- uVar31 = uVar28 >> 0x13; +- uVar30 = auVar29._8_8_; +- uVar32 = uVar30 >> 0x13; +- lVar33 = uVar28 << 3; +- lVar36 = uVar30 << 3; +- lVar35 = auVar21._8_8_; +- uVar38 = uVar28 >> 6; +- lVar2 = uVar19 + lStack_80 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 << 0x17)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar46 = auVar48._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar48._8_8_; +- uVar60 = uVar58 >> 1; +- uVar15 = uVar15 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = auVar29[7]; +- bVar5 = auVar29[15]; +- bVar7 = auVar48[7]; +- bVar6 = auVar48[15]; +- auVar50[9] = (byte)((uVar30 >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ (byte)((ulong)lVar36 >> 8); +- auVar50[10] = (byte)((auVar29._9_7_ >> 6) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar50[11] = (byte)((auVar29._10_6_ >> 6) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar50[12] = (byte)((auVar29._11_5_ >> 6) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = uVar28 << 0x2d; +- lVar37 = uVar30 << 0x2d; +- uVar19 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 << 0x1e) ^ +- (uVar12 >> 0x27 | uVar12 << 0x19)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- auVar50[8] = (byte)(uVar30 >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar49[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar48[9]; +- auVar49[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar48[10]; +- auVar49[10] = (byte)((auVar48._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar48[11]; +- auVar49[11] = (byte)((auVar48._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar48[12]; +- auVar49[12] = (byte)((auVar48._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar48[13]; +- auVar49[13] = (byte)((auVar48._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar48[14]; +- auVar49[14] = (byte)((uint3)(auVar48._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar50._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar50[13] = (byte)((auVar29._12_4_ >> 6) >> 8) ^ bVar5 >> 3 ^ (byte)((ulong)lVar36 >> 0x28) +- ^ (byte)((ulong)lVar37 >> 0x28); +- auVar50[14] = (byte)((uint3)(auVar29._13_3_ >> 6) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar50[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar49._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar48[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar48[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar48[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar48[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar48[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar48[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar48[1] +- ))))))); +- auVar49[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar48[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar18 + lStack_78; +- auVar21._0_8_ = auVar21._0_8_ + auVar39._0_8_ + auVar50._0_8_ + auVar49._0_8_; +- auVar21._8_8_ = lVar35 + auVar39._8_8_ + auVar50._8_8_ + auVar49._8_8_; +- lStack_80 = *plVar11 + auVar21._0_8_; +- lStack_78 = plVar11[1] + auVar21._8_8_; +- lVar2 = lVar2 + ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- uVar14 = uVar14 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar19 ^ uVar12 & uVar13); +- auVar39 = NEON_ext(auVar26,auVar27,8,1); +- auVar50 = NEON_ext(auVar22,auVar23,8,1); +- uVar31 = auVar21._0_8_ >> 0x13; +- uVar32 = auVar21._8_8_ >> 0x13; +- lVar33 = auVar21._0_8_ * 8; +- lVar36 = auVar21._8_8_ * 8; +- lVar35 = auVar22._8_8_; +- uVar38 = auVar21._0_8_ >> 6; +- lVar2 = uVar17 + lStack_70 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar13 = uVar13 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar21._0_8_ >> 0x38); +- bVar5 = (byte)(auVar21._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar48[9] = (byte)((auVar21._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar48[10] = (byte)((uint7)(auVar21._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar48[11] = (byte)((uint6)(auVar21._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar48[12] = (byte)((uint5)(auVar21._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar21._0_8_ << 0x2d; +- lVar37 = auVar21._8_8_ << 0x2d; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar12) & uVar18 ^ uVar19 & uVar12); +- auVar48[8] = (byte)(auVar21._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar51[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar51[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar51[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar51[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar51[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar51[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar51[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar48._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar48[13] = (byte)((uint)(auVar21._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar48[14] = (byte)((uint3)(auVar21._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar48[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar51._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar51[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar16 + lStack_68; +- auVar22._0_8_ = auVar22._0_8_ + auVar39._0_8_ + auVar48._0_8_ + auVar51._0_8_; +- auVar22._8_8_ = lVar35 + auVar39._8_8_ + auVar48._8_8_ + auVar51._8_8_; +- lStack_70 = plVar11[2] + auVar22._0_8_; +- lStack_68 = plVar11[3] + auVar22._8_8_; +- lVar2 = lVar2 + ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- uVar12 = uVar12 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- auVar39 = NEON_ext(auVar27,auVar29,8,1); +- auVar50 = NEON_ext(auVar23,auVar24,8,1); +- uVar31 = auVar22._0_8_ >> 0x13; +- uVar32 = auVar22._8_8_ >> 0x13; +- lVar33 = auVar22._0_8_ * 8; +- lVar36 = auVar22._8_8_ * 8; +- lVar35 = auVar23._8_8_; +- uVar38 = auVar22._0_8_ >> 6; +- lVar2 = uVar15 + lStack_60 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar19 = uVar19 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar22._0_8_ >> 0x38); +- bVar5 = (byte)(auVar22._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar40[9] = (byte)((auVar22._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar40[10] = (byte)((uint7)(auVar22._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar40[11] = (byte)((uint6)(auVar22._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar40[12] = (byte)((uint5)(auVar22._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar22._0_8_ << 0x2d; +- lVar37 = auVar22._8_8_ << 0x2d; +- uVar15 = lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- auVar40[8] = (byte)(auVar22._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar52[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar52[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar52[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar52[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar52[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar52[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar52[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar40._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar40[13] = (byte)((uint)(auVar22._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar40[14] = (byte)((uint3)(auVar22._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar40[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar52._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar52[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar14 + lStack_58; +- auVar23._0_8_ = auVar23._0_8_ + auVar39._0_8_ + auVar40._0_8_ + auVar52._0_8_; +- auVar23._8_8_ = lVar35 + auVar39._8_8_ + auVar40._8_8_ + auVar52._8_8_; +- lStack_60 = plVar11[4] + auVar23._0_8_; +- lStack_58 = plVar11[5] + auVar23._8_8_; +- lVar2 = lVar2 + ((uVar19 >> 0xe | uVar19 << 0x32) ^ (uVar19 >> 0x12 | uVar19 << 0x2e) ^ +- (uVar19 >> 0x29 | uVar19 * 0x800000)) + ((uVar12 ^ uVar13) & uVar19 ^ uVar13); +- uVar18 = uVar18 + lVar2; +- uVar14 = lVar2 + ((uVar15 >> 0x1c | uVar15 << 0x24) ^ (uVar15 >> 0x22 | uVar15 * 0x40000000) ^ +- (uVar15 >> 0x27 | uVar15 * 0x2000000)) + +- ((uVar16 ^ uVar17) & uVar15 ^ uVar16 & uVar17); +- auVar39 = NEON_ext(auVar29,auVar21,8,1); +- auVar50 = NEON_ext(auVar24,auVar25,8,1); +- uVar31 = auVar23._0_8_ >> 0x13; +- uVar32 = auVar23._8_8_ >> 0x13; +- lVar33 = auVar23._0_8_ * 8; +- lVar36 = auVar23._8_8_ * 8; +- lVar35 = auVar24._8_8_; +- uVar38 = auVar23._0_8_ >> 6; +- lVar2 = uVar13 + lStack_50 + +- ((uVar18 >> 0xe | uVar18 << 0x32) ^ (uVar18 >> 0x12 | uVar18 << 0x2e) ^ +- (uVar18 >> 0x29 | uVar18 * 0x800000)) + ((uVar19 ^ uVar12) & uVar18 ^ uVar12); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar17 = uVar17 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar23._0_8_ >> 0x38); +- bVar5 = (byte)(auVar23._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar41[9] = (byte)((auVar23._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar41[10] = (byte)((uint7)(auVar23._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar41[11] = (byte)((uint6)(auVar23._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar41[12] = (byte)((uint5)(auVar23._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar23._0_8_ << 0x2d; +- lVar37 = auVar23._8_8_ << 0x2d; +- uVar13 = lVar2 + ((uVar14 >> 0x1c | uVar14 << 0x24) ^ (uVar14 >> 0x22 | uVar14 * 0x40000000) ^ +- (uVar14 >> 0x27 | uVar14 * 0x2000000)) + +- ((uVar15 ^ uVar16) & uVar14 ^ uVar15 & uVar16); +- auVar41[8] = (byte)(auVar23._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar53[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar53[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar53[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar53[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar53[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar53[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar53[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar41._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar41[13] = (byte)((uint)(auVar23._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar41[14] = (byte)((uint3)(auVar23._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar41[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar53._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar53[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar12 + lStack_48; +- auVar24._0_8_ = auVar24._0_8_ + auVar39._0_8_ + auVar41._0_8_ + auVar53._0_8_; +- auVar24._8_8_ = lVar35 + auVar39._8_8_ + auVar41._8_8_ + auVar53._8_8_; +- lStack_50 = plVar11[6] + auVar24._0_8_; +- lStack_48 = plVar11[7] + auVar24._8_8_; +- lVar2 = lVar2 + ((uVar17 >> 0xe | uVar17 << 0x32) ^ (uVar17 >> 0x12 | uVar17 << 0x2e) ^ +- (uVar17 >> 0x29 | uVar17 * 0x800000)) + ((uVar18 ^ uVar19) & uVar17 ^ uVar19); +- uVar16 = uVar16 + lVar2; +- uVar12 = lVar2 + ((uVar13 >> 0x1c | uVar13 << 0x24) ^ (uVar13 >> 0x22 | uVar13 * 0x40000000) ^ +- (uVar13 >> 0x27 | uVar13 * 0x2000000)) + +- ((uVar14 ^ uVar15) & uVar13 ^ uVar14 & uVar15); +- auVar39 = NEON_ext(auVar21,auVar22,8,1); +- auVar50 = NEON_ext(auVar25,auVar26,8,1); +- uVar31 = auVar24._0_8_ >> 0x13; +- uVar32 = auVar24._8_8_ >> 0x13; +- lVar33 = auVar24._0_8_ * 8; +- lVar36 = auVar24._8_8_ * 8; +- lVar35 = auVar25._8_8_; +- uVar38 = auVar24._0_8_ >> 6; +- lVar2 = uVar19 + lStack_40 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 * 0x800000)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar15 = uVar15 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar24._0_8_ >> 0x38); +- bVar5 = (byte)(auVar24._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar42[9] = (byte)((auVar24._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar42[10] = (byte)((uint7)(auVar24._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar42[11] = (byte)((uint6)(auVar24._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar42[12] = (byte)((uint5)(auVar24._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar24._0_8_ << 0x2d; +- lVar37 = auVar24._8_8_ << 0x2d; +- uVar19 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 * 0x40000000) ^ +- (uVar12 >> 0x27 | uVar12 * 0x2000000)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- auVar42[8] = (byte)(auVar24._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar54[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar54[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar54[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar54[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar54[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar54[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar54[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar42._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar42[13] = (byte)((uint)(auVar24._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar42[14] = (byte)((uint3)(auVar24._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar42[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar54._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar54[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar18 + lStack_38; +- auVar25._0_8_ = auVar25._0_8_ + auVar39._0_8_ + auVar42._0_8_ + auVar54._0_8_; +- auVar25._8_8_ = lVar35 + auVar39._8_8_ + auVar42._8_8_ + auVar54._8_8_; +- lStack_40 = plVar11[8] + auVar25._0_8_; +- lStack_38 = plVar11[9] + auVar25._8_8_; +- lVar2 = lVar2 + ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- uVar14 = uVar14 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar19 ^ uVar12 & uVar13); +- auVar39 = NEON_ext(auVar22,auVar23,8,1); +- auVar50 = NEON_ext(auVar26,auVar27,8,1); +- uVar31 = auVar25._0_8_ >> 0x13; +- uVar32 = auVar25._8_8_ >> 0x13; +- lVar33 = auVar25._0_8_ * 8; +- lVar36 = auVar25._8_8_ * 8; +- lVar35 = auVar26._8_8_; +- uVar38 = auVar25._0_8_ >> 6; +- lVar2 = uVar17 + lStack_30 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar13 = uVar13 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar25._0_8_ >> 0x38); +- bVar5 = (byte)(auVar25._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar43[9] = (byte)((auVar25._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar43[10] = (byte)((uint7)(auVar25._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar43[11] = (byte)((uint6)(auVar25._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar43[12] = (byte)((uint5)(auVar25._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar25._0_8_ << 0x2d; +- lVar37 = auVar25._8_8_ << 0x2d; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar12) & uVar18 ^ uVar19 & uVar12); +- auVar43[8] = (byte)(auVar25._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar55[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar55[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar55[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar55[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar55[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar55[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar55[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar43._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar43[13] = (byte)((uint)(auVar25._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar43[14] = (byte)((uint3)(auVar25._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar43[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar55._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar55[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar16 + lStack_28; +- auVar26._0_8_ = auVar26._0_8_ + auVar39._0_8_ + auVar43._0_8_ + auVar55._0_8_; +- auVar26._8_8_ = lVar35 + auVar39._8_8_ + auVar43._8_8_ + auVar55._8_8_; +- lStack_30 = plVar11[10] + auVar26._0_8_; +- lStack_28 = plVar11[0xb] + auVar26._8_8_; +- lVar2 = lVar2 + ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- uVar12 = uVar12 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- auVar39 = NEON_ext(auVar23,auVar24,8,1); +- auVar50 = NEON_ext(auVar27,auVar29,8,1); +- uVar31 = auVar26._0_8_ >> 0x13; +- uVar32 = auVar26._8_8_ >> 0x13; +- lVar33 = auVar26._0_8_ * 8; +- lVar36 = auVar26._8_8_ * 8; +- lVar35 = auVar27._8_8_; +- uVar38 = auVar26._0_8_ >> 6; +- lVar2 = uVar15 + lStack_20 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar19 = uVar19 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar26._0_8_ >> 0x38); +- bVar5 = (byte)(auVar26._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar44[9] = (byte)((auVar26._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar44[10] = (byte)((uint7)(auVar26._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar44[11] = (byte)((uint6)(auVar26._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar44[12] = (byte)((uint5)(auVar26._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar26._0_8_ << 0x2d; +- lVar37 = auVar26._8_8_ << 0x2d; +- uVar15 = lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- auVar44[8] = (byte)(auVar26._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar56[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar56[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar56[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar56[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar56[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar56[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar56[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar44._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar44[13] = (byte)((uint)(auVar26._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar44[14] = (byte)((uint3)(auVar26._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar44[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar56._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar56[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar14 + lStack_18; +- auVar27._0_8_ = auVar27._0_8_ + auVar39._0_8_ + auVar44._0_8_ + auVar56._0_8_; +- auVar27._8_8_ = lVar35 + auVar39._8_8_ + auVar44._8_8_ + auVar56._8_8_; +- lStack_20 = plVar11[0xc] + auVar27._0_8_; +- lStack_18 = plVar11[0xd] + auVar27._8_8_; +- lVar2 = lVar2 + ((uVar19 >> 0xe | uVar19 << 0x32) ^ (uVar19 >> 0x12 | uVar19 << 0x2e) ^ +- (uVar19 >> 0x29 | uVar19 * 0x800000)) + ((uVar12 ^ uVar13) & uVar19 ^ uVar13); +- uVar18 = uVar18 + lVar2; +- uVar14 = lVar2 + ((uVar15 >> 0x1c | uVar15 << 0x24) ^ (uVar15 >> 0x22 | uVar15 * 0x40000000) ^ +- (uVar15 >> 0x27 | uVar15 * 0x2000000)) + +- ((uVar16 ^ uVar17) & uVar15 ^ uVar16 & uVar17); +- auVar39 = NEON_ext(auVar24,auVar25,8,1); +- auVar29 = NEON_ext(auVar29,auVar21,8,1); +- uVar31 = auVar27._0_8_ >> 0x13; +- uVar32 = auVar27._8_8_ >> 0x13; +- lVar35 = auVar27._0_8_ * 8; +- lVar34 = auVar27._8_8_ * 8; +- uVar38 = auVar27._0_8_ >> 6; +- lVar2 = uVar13 + lStack_10 + +- ((uVar18 >> 0xe | uVar18 << 0x32) ^ (uVar18 >> 0x12 | uVar18 << 0x2e) ^ +- (uVar18 >> 0x29 | uVar18 * 0x800000)) + ((uVar19 ^ uVar12) & uVar18 ^ uVar12); +- uVar46 = auVar29._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar29._8_8_; +- uVar60 = uVar58 >> 1; +- uVar17 = uVar17 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar27._0_8_ >> 0x38); +- bVar5 = (byte)(auVar27._8_8_ >> 0x38); +- bVar7 = auVar29[7]; +- bVar6 = auVar29[15]; +- auVar45[9] = (byte)((auVar27._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar34 >> 8); +- auVar45[10] = (byte)((uint7)(auVar27._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar34 >> 0x10); +- auVar45[11] = (byte)((uint6)(auVar27._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar34 >> 0x18); +- auVar45[12] = (byte)((uint5)(auVar27._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar34 >> 0x20); +- lVar33 = auVar27._0_8_ << 0x2d; +- lVar36 = auVar27._8_8_ << 0x2d; +- uVar13 = lVar2 + ((uVar14 >> 0x1c | uVar14 << 0x24) ^ (uVar14 >> 0x22 | uVar14 * 0x40000000) ^ +- (uVar14 >> 0x27 | uVar14 * 0x2000000)) + +- ((uVar15 ^ uVar16) & uVar14 ^ uVar15 & uVar16); +- auVar45[8] = (byte)(auVar27._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar34 ^ bVar5 >> 5; +- auVar57[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar29[9]; +- auVar57[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar29[10]; +- auVar57[10] = (byte)((auVar29._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar29[11]; +- auVar57[11] = (byte)((auVar29._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar29[12]; +- auVar57[12] = (byte)((auVar29._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar29[13]; +- auVar57[13] = (byte)((auVar29._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar29[14]; +- auVar57[14] = (byte)((uint3)(auVar29._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar45._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar35 >> 0x38) ^ (byte)((ulong)lVar33 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar35 >> 0x30) ^ +- (byte)((ulong)lVar33 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar35 >> 0x28) ^ (byte)((ulong)lVar33 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar35 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar35 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar35 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar35 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar35 ^ bVar4 >> 5 +- ))))))); +- auVar45[13] = (byte)((uint)(auVar27._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar34 >> 0x28) ^ (byte)((ulong)lVar36 >> 0x28); +- auVar45[14] = (byte)((uint3)(auVar27._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar34 >> 0x30) ^ +- (byte)((ulong)lVar36 >> 0x30); +- auVar45[15] = bVar5 >> 6 ^ (byte)((ulong)lVar34 >> 0x38) ^ (byte)((ulong)lVar36 >> 0x38); +- auVar57._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar29[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar29[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar29[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar29[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar29[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar29[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar29[1] +- ))))))); +- auVar57[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar29[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar12 + lStack_8; +- auVar29._0_8_ = uVar28 + auVar39._0_8_ + auVar45._0_8_ + auVar57._0_8_; +- auVar29._8_8_ = uVar30 + auVar39._8_8_ + auVar45._8_8_ + auVar57._8_8_; +- lStack_10 = plVar11[0xe] + auVar29._0_8_; +- lStack_8 = plVar11[0xf] + auVar29._8_8_; +- lVar2 = lVar2 + ((uVar17 >> 0xe | uVar17 << 0x32) ^ (uVar17 >> 0x12 | uVar17 << 0x2e) ^ +- (uVar17 >> 0x29 | uVar17 * 0x800000)) + ((uVar18 ^ uVar19) & uVar17 ^ uVar19); +- uVar16 = uVar16 + lVar2; +- uVar12 = lVar2 + ((uVar13 >> 0x1c | uVar13 << 0x24) ^ (uVar13 >> 0x22 | uVar13 * 0x40000000) ^ +- (uVar13 >> 0x27 | uVar13 * 0x2000000)) + +- ((uVar14 ^ uVar15) & uVar13 ^ uVar14 & uVar15); +- iVar3 = iVar20 + -1; +- bVar1 = 0 < iVar20; +- plVar10 = plVar11 + 0x10; +- iVar20 = iVar3; +- } while (iVar3 != 0 && bVar1); +- param_2 = param_2 + -1; +- if (param_2 == 0) break; +- lVar2 = uVar19 + lStack_80 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 * 0x800000)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar15 = uVar15 + lVar2; +- uVar19 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 * 0x40000000) ^ +- (uVar12 >> 0x27 | uVar12 * 0x2000000)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- auVar21 = NEON_rev64(*pauVar9,1); +- lVar2 = uVar18 + lStack_78 + +- ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- lStack_80 = plVar11[-0x40] + auVar21._0_8_; +- lStack_78 = plVar11[-0x3f] + auVar21._8_8_; +- uVar14 = uVar14 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar19 ^ uVar12 & uVar13); +- lVar2 = uVar17 + lStack_70 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar13 = uVar13 + lVar2; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar12) & uVar18 ^ uVar19 & uVar12); +- auVar22 = NEON_rev64(pauVar9[1],1); +- lVar2 = uVar16 + lStack_68 + +- ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- lStack_70 = plVar11[-0x3e] + auVar22._0_8_; +- lStack_68 = plVar11[-0x3d] + auVar22._8_8_; +- uVar12 = uVar12 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- lVar2 = uVar15 + lStack_60 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar19 = uVar19 + lVar2; +- uVar15 = lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- auVar23 = NEON_rev64(pauVar9[2],1); +- lVar2 = uVar14 + lStack_58 + +- ((uVar19 >> 0xe | uVar19 << 0x32) ^ (uVar19 >> 0x12 | uVar19 << 0x2e) ^ +- (uVar19 >> 0x29 | uVar19 * 0x800000)) + ((uVar12 ^ uVar13) & uVar19 ^ uVar13); +- lStack_60 = plVar11[-0x3c] + auVar23._0_8_; +- lStack_58 = plVar11[-0x3b] + auVar23._8_8_; +- uVar18 = uVar18 + lVar2; +- uVar14 = lVar2 + ((uVar15 >> 0x1c | uVar15 << 0x24) ^ (uVar15 >> 0x22 | uVar15 * 0x40000000) ^ +- (uVar15 >> 0x27 | uVar15 * 0x2000000)) + +- ((uVar16 ^ uVar17) & uVar15 ^ uVar16 & uVar17); +- lVar2 = uVar13 + lStack_50 + +- ((uVar18 >> 0xe | uVar18 << 0x32) ^ (uVar18 >> 0x12 | uVar18 << 0x2e) ^ +- (uVar18 >> 0x29 | uVar18 * 0x800000)) + ((uVar19 ^ uVar12) & uVar18 ^ uVar12); +- uVar17 = uVar17 + lVar2; +- uVar13 = lVar2 + ((uVar14 >> 0x1c | uVar14 << 0x24) ^ (uVar14 >> 0x22 | uVar14 * 0x40000000) ^ +- (uVar14 >> 0x27 | uVar14 * 0x2000000)) + +- ((uVar15 ^ uVar16) & uVar14 ^ uVar15 & uVar16); +- auVar24 = NEON_rev64(pauVar9[3],1); +- lVar2 = uVar12 + lStack_48 + +- ((uVar17 >> 0xe | uVar17 << 0x32) ^ (uVar17 >> 0x12 | uVar17 << 0x2e) ^ +- (uVar17 >> 0x29 | uVar17 * 0x800000)) + ((uVar18 ^ uVar19) & uVar17 ^ uVar19); +- lStack_50 = plVar11[-0x3a] + auVar24._0_8_; +- lStack_48 = plVar11[-0x39] + auVar24._8_8_; +- uVar16 = uVar16 + lVar2; +- uVar12 = lVar2 + ((uVar13 >> 0x1c | uVar13 << 0x24) ^ (uVar13 >> 0x22 | uVar13 * 0x40000000) ^ +- (uVar13 >> 0x27 | uVar13 * 0x2000000)) + +- ((uVar14 ^ uVar15) & uVar13 ^ uVar14 & uVar15); +- lVar2 = uVar19 + lStack_40 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 * 0x800000)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar15 = uVar15 + lVar2; +- uVar28 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 * 0x40000000) ^ +- (uVar12 >> 0x27 | uVar12 * 0x2000000)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- auVar25 = NEON_rev64(pauVar9[4],1); +- lVar2 = uVar18 + lStack_38 + +- ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- lStack_40 = plVar11[-0x38] + auVar25._0_8_; +- lStack_38 = plVar11[-0x37] + auVar25._8_8_; +- uVar14 = uVar14 + lVar2; +- uVar30 = lVar2 + ((uVar28 >> 0x1c | uVar28 << 0x24) ^ (uVar28 >> 0x22 | uVar28 * 0x40000000) ^ +- (uVar28 >> 0x27 | uVar28 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar28 ^ uVar12 & uVar13); +- lVar2 = uVar17 + lStack_30 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar13 = uVar13 + lVar2; +- uVar31 = lVar2 + ((uVar30 >> 0x1c | uVar30 << 0x24) ^ (uVar30 >> 0x22 | uVar30 * 0x40000000) ^ +- (uVar30 >> 0x27 | uVar30 * 0x2000000)) + +- ((uVar28 ^ uVar12) & uVar30 ^ uVar28 & uVar12); +- auVar26 = NEON_rev64(pauVar9[5],1); +- lVar2 = uVar16 + lStack_28 + +- ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- lStack_30 = plVar11[-0x36] + auVar26._0_8_; +- lStack_28 = plVar11[-0x35] + auVar26._8_8_; +- uVar12 = uVar12 + lVar2; +- uVar19 = lVar2 + ((uVar31 >> 0x1c | uVar31 << 0x24) ^ (uVar31 >> 0x22 | uVar31 * 0x40000000) ^ +- (uVar31 >> 0x27 | uVar31 * 0x2000000)) + +- ((uVar30 ^ uVar28) & uVar31 ^ uVar30 & uVar28); +- pauVar8 = pauVar9 + 7; +- lVar2 = uVar15 + lStack_20 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar28 = uVar28 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar31 ^ uVar30) & uVar19 ^ uVar31 & uVar30); +- auVar27 = NEON_rev64(pauVar9[6],1); +- lVar2 = uVar14 + lStack_18 + +- ((uVar28 >> 0xe | uVar28 << 0x32) ^ (uVar28 >> 0x12 | uVar28 << 0x2e) ^ +- (uVar28 >> 0x29 | uVar28 * 0x800000)) + ((uVar12 ^ uVar13) & uVar28 ^ uVar13); +- lStack_20 = plVar11[-0x34] + auVar27._0_8_; +- lStack_18 = plVar11[-0x33] + auVar27._8_8_; +- uVar30 = uVar30 + lVar2; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar31) & uVar18 ^ uVar19 & uVar31); +- pauVar9 = pauVar9 + 8; +- lVar2 = uVar13 + lStack_10 + +- ((uVar30 >> 0xe | uVar30 << 0x32) ^ (uVar30 >> 0x12 | uVar30 << 0x2e) ^ +- (uVar30 >> 0x29 | uVar30 * 0x800000)) + ((uVar28 ^ uVar12) & uVar30 ^ uVar12); +- plVar10 = plVar11 + -0x30; +- uVar31 = uVar31 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- auVar29 = NEON_rev64(*pauVar8,1); +- lVar2 = uVar12 + lStack_8 + +- ((uVar31 >> 0xe | uVar31 << 0x32) ^ (uVar31 >> 0x12 | uVar31 << 0x2e) ^ +- (uVar31 >> 0x29 | uVar31 * 0x800000)) + ((uVar30 ^ uVar28) & uVar31 ^ uVar28); +- lStack_10 = plVar11[-0x32] + auVar29._0_8_; +- lStack_8 = plVar11[-0x31] + auVar29._8_8_; +- *param_1 = *param_1 + +- lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- param_1[1] = param_1[1] + uVar16; +- param_1[2] = param_1[2] + uVar17; +- param_1[3] = param_1[3] + uVar18; +- param_1[4] = param_1[4] + uVar19 + lVar2; +- param_1[5] = param_1[5] + uVar31; +- param_1[6] = param_1[6] + uVar30; +- param_1[7] = param_1[7] + uVar28; +- } +- lVar2 = uVar19 + lStack_80 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 * 0x800000)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar15 = uVar15 + lVar2; +- uVar19 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 * 0x40000000) ^ +- (uVar12 >> 0x27 | uVar12 * 0x2000000)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- lVar2 = uVar18 + lStack_78 + +- ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- uVar14 = uVar14 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar19 ^ uVar12 & uVar13); +- lVar2 = uVar17 + lStack_70 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar13 = uVar13 + lVar2; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar12) & uVar18 ^ uVar19 & uVar12); +- lVar2 = uVar16 + lStack_68 + +- ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- uVar12 = uVar12 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- lVar2 = uVar15 + lStack_60 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar19 = uVar19 + lVar2; +- uVar15 = lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- lVar2 = uVar14 + lStack_58 + +- ((uVar19 >> 0xe | uVar19 << 0x32) ^ (uVar19 >> 0x12 | uVar19 << 0x2e) ^ +- (uVar19 >> 0x29 | uVar19 * 0x800000)) + ((uVar12 ^ uVar13) & uVar19 ^ uVar13); +- uVar18 = uVar18 + lVar2; +- uVar14 = lVar2 + ((uVar15 >> 0x1c | uVar15 << 0x24) ^ (uVar15 >> 0x22 | uVar15 * 0x40000000) ^ +- (uVar15 >> 0x27 | uVar15 * 0x2000000)) + +- ((uVar16 ^ uVar17) & uVar15 ^ uVar16 & uVar17); +- lVar2 = uVar13 + lStack_50 + +- ((uVar18 >> 0xe | uVar18 << 0x32) ^ (uVar18 >> 0x12 | uVar18 << 0x2e) ^ +- (uVar18 >> 0x29 | uVar18 * 0x800000)) + ((uVar19 ^ uVar12) & uVar18 ^ uVar12); +- uVar17 = uVar17 + lVar2; +- uVar13 = lVar2 + ((uVar14 >> 0x1c | uVar14 << 0x24) ^ (uVar14 >> 0x22 | uVar14 * 0x40000000) ^ +- (uVar14 >> 0x27 | uVar14 * 0x2000000)) + +- ((uVar15 ^ uVar16) & uVar14 ^ uVar15 & uVar16); +- lVar2 = uVar12 + lStack_48 + +- ((uVar17 >> 0xe | uVar17 << 0x32) ^ (uVar17 >> 0x12 | uVar17 << 0x2e) ^ +- (uVar17 >> 0x29 | uVar17 * 0x800000)) + ((uVar18 ^ uVar19) & uVar17 ^ uVar19); +- uVar16 = uVar16 + lVar2; +- uVar12 = lVar2 + ((uVar13 >> 0x1c | uVar13 << 0x24) ^ (uVar13 >> 0x22 | uVar13 * 0x40000000) ^ +- (uVar13 >> 0x27 | uVar13 * 0x2000000)) + +- ((uVar14 ^ uVar15) & uVar13 ^ uVar14 & uVar15); +- lVar2 = uVar19 + lStack_40 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 * 0x800000)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar15 = uVar15 + lVar2; +- uVar28 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 * 0x40000000) ^ +- (uVar12 >> 0x27 | uVar12 * 0x2000000)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- lVar2 = uVar18 + lStack_38 + +- ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- uVar14 = uVar14 + lVar2; +- uVar30 = lVar2 + ((uVar28 >> 0x1c | uVar28 << 0x24) ^ (uVar28 >> 0x22 | uVar28 * 0x40000000) ^ +- (uVar28 >> 0x27 | uVar28 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar28 ^ uVar12 & uVar13); +- lVar2 = uVar17 + lStack_30 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar13 = uVar13 + lVar2; +- uVar31 = lVar2 + ((uVar30 >> 0x1c | uVar30 << 0x24) ^ (uVar30 >> 0x22 | uVar30 * 0x40000000) ^ +- (uVar30 >> 0x27 | uVar30 * 0x2000000)) + +- ((uVar28 ^ uVar12) & uVar30 ^ uVar28 & uVar12); +- lVar2 = uVar16 + lStack_28 + +- ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- uVar12 = uVar12 + lVar2; +- uVar19 = lVar2 + ((uVar31 >> 0x1c | uVar31 << 0x24) ^ (uVar31 >> 0x22 | uVar31 * 0x40000000) ^ +- (uVar31 >> 0x27 | uVar31 * 0x2000000)) + +- ((uVar30 ^ uVar28) & uVar31 ^ uVar30 & uVar28); +- lVar2 = uVar15 + lStack_20 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar28 = uVar28 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar31 ^ uVar30) & uVar19 ^ uVar31 & uVar30); +- lVar2 = uVar14 + lStack_18 + +- ((uVar28 >> 0xe | uVar28 << 0x32) ^ (uVar28 >> 0x12 | uVar28 << 0x2e) ^ +- (uVar28 >> 0x29 | uVar28 * 0x800000)) + ((uVar12 ^ uVar13) & uVar28 ^ uVar13); +- uVar30 = uVar30 + lVar2; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar31) & uVar18 ^ uVar19 & uVar31); +- lVar2 = uVar13 + lStack_10 + +- ((uVar30 >> 0xe | uVar30 << 0x32) ^ (uVar30 >> 0x12 | uVar30 << 0x2e) ^ +- (uVar30 >> 0x29 | uVar30 * 0x800000)) + ((uVar28 ^ uVar12) & uVar30 ^ uVar12); +- uVar31 = uVar31 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- lVar2 = uVar12 + lStack_8 + +- ((uVar31 >> 0xe | uVar31 << 0x32) ^ (uVar31 >> 0x12 | uVar31 << 0x2e) ^ +- (uVar31 >> 0x29 | uVar31 * 0x800000)) + ((uVar30 ^ uVar28) & uVar31 ^ uVar28); +- *param_1 = *param_1 + +- lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- param_1[1] = param_1[1] + uVar16; +- param_1[2] = param_1[2] + uVar17; +- param_1[3] = param_1[3] + uVar18; +- param_1[4] = param_1[4] + uVar19 + lVar2; +- param_1[5] = param_1[5] + uVar31; +- param_1[6] = param_1[6] + uVar30; +- param_1[7] = param_1[7] + uVar28; ++ _AccelerateCrypto_SHA512_compress_hwassist(); + return; + } + + +``` + + +## _ccrng_uniform + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|code,refcount,length,address,calling| +|ratio|0.97| +|i_ratio|0.81| +|m_ratio|0.97| +|b_ratio|0.97| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_ccrng_uniform|_ccrng_uniform| +|fullname|_ccrng_uniform|_ccrng_uniform| +|`refcount`|2|3| +|`length`|224|220| +|called|_cc_clear
_cc_disable_dit|_cc_clear
_cc_disable_dit| +|`calling`||_ccrsa_eme_pkcs1v15_decode_safe_ws| +|paramcount|0|0| +|`address`|1f1d22cac|1f1e3a76c| +|sig|undefined _ccrng_uniform(void)|undefined _ccrng_uniform(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _ccrng_uniform Calling Diff + + +```diff +--- _ccrng_uniform calling ++++ _ccrng_uniform calling +@@ -0,0 +1 @@ ++_ccrsa_eme_pkcs1v15_decode_safe_ws +``` + + +### _ccrng_uniform Diff + + +```diff +--- _ccrng_uniform ++++ _ccrng_uniform +@@ -1,39 +1,39 @@ + + /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ + + undefined8 _ccrng_uniform(code **param_1,ulong param_2,ulong *param_3) + + { + undefined8 uVar1; + ulong uVar2; + undefined local_41; + + local_41 = 0; + if ((_DAT_0 >> 0x39 & 1) != 0) { + uVar1 = UnkSytemRegRead(3,3,4,2,5); + if (((uint)uVar1 >> 0x18 & 1) == 0) { + dit = 1; + local_41 = 1; + } + else { + local_41 = 0; + } + } +- if (param_2 < 2) { ++ if (param_2 == 0) { + uVar1 = 0xfffffff9; + LAB_1: + _cc_clear(8,param_3); + } + else { + do { + uVar1 = (**param_1)(param_1,8,param_3); + if ((int)uVar1 != 0) goto LAB_1; + uVar2 = *param_3 & 0xffffffffffffffffU >> (LZCOUNT(param_2) & 0x3fU); + *param_3 = uVar2; + } while (param_2 <= uVar2); + uVar1 = 0; + } + _cc_disable_dit(&local_41); + return uVar1; + } + + +``` + + +## _ccsha512_vng_arm_compress + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|code,length,address,called| +|ratio|0.01| +|i_ratio|0.0| +|m_ratio|0.29| +|b_ratio|0.29| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_ccsha512_vng_arm_compress|_ccsha512_vng_arm_compress| +|fullname|_ccsha512_vng_arm_compress|_ccsha512_vng_arm_compress| +|refcount|1|1| +|`length`|4|24| +|`called`|_AccelerateCrypto_SHA512_compress|_AccelerateCrypto_SHA512_compress
_AccelerateCrypto_SHA512_compress_hwassist| +|calling||| +|paramcount|0|0| +|`address`|1f1d74120|1f1e8c0d0| +|sig|undefined _ccsha512_vng_arm_compress(void)|undefined _ccsha512_vng_arm_compress(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _ccsha512_vng_arm_compress Called Diff + + +```diff +--- _ccsha512_vng_arm_compress called ++++ _ccsha512_vng_arm_compress called +@@ -1,0 +2 @@ ++_AccelerateCrypto_SHA512_compress_hwassist +``` + + +### _ccsha512_vng_arm_compress Diff + + +```diff +--- _ccsha512_vng_arm_compress ++++ _ccsha512_vng_arm_compress +@@ -1,1168 +1,14 @@ + + /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ + +-void _ccsha512_vng_arm_compress(ulong *param_1,long param_2,undefined (*param_3) [16]) ++void _ccsha512_vng_arm_compress(void) + + { +- bool bVar1; +- long lVar2; +- int iVar3; +- byte bVar4; +- byte bVar5; +- byte bVar6; +- byte bVar7; +- undefined (*pauVar8) [16]; +- undefined (*pauVar9) [16]; +- long *plVar10; +- long *plVar11; +- ulong uVar12; +- ulong uVar13; +- ulong uVar14; +- ulong uVar15; +- ulong uVar16; +- ulong uVar17; +- ulong uVar18; +- ulong uVar19; +- int iVar20; +- undefined auVar21 [16]; +- undefined auVar22 [16]; +- undefined auVar23 [16]; +- undefined auVar24 [16]; +- undefined auVar25 [16]; +- undefined auVar26 [16]; +- undefined auVar27 [16]; +- ulong uVar28; +- undefined auVar29 [16]; +- ulong uVar30; +- ulong uVar31; +- ulong uVar32; +- long lVar33; +- long lVar34; +- long lVar35; +- long lVar36; +- long lVar37; +- ulong uVar38; +- undefined auVar39 [16]; +- undefined auVar40 [16]; +- undefined auVar41 [16]; +- undefined auVar42 [16]; +- undefined auVar43 [16]; +- undefined auVar44 [16]; +- undefined auVar45 [16]; +- ulong uVar46; +- undefined auVar48 [16]; +- ulong uVar47; +- ulong uVar58; +- undefined auVar49 [16]; +- undefined auVar50 [16]; +- undefined auVar51 [16]; +- undefined auVar52 [16]; +- undefined auVar53 [16]; +- undefined auVar54 [16]; +- undefined auVar55 [16]; +- undefined auVar56 [16]; +- undefined auVar57 [16]; +- ulong uVar59; +- ulong uVar60; +- long lStack_80; +- long lStack_78; +- long lStack_70; +- long lStack_68; +- long lStack_60; +- long lStack_58; +- long lStack_50; +- long lStack_48; +- long lStack_40; +- long lStack_38; +- long lStack_30; +- long lStack_28; +- long lStack_20; +- long lStack_18; +- long lStack_10; +- long lStack_8; +- +- if (param_2 == 0) { ++ if (-1 < (int)_DAT_0) { ++ _AccelerateCrypto_SHA512_compress(); + return; + } +- pauVar9 = param_3 + 8; +- auVar21 = NEON_rev64(*param_3,1); +- auVar22 = NEON_rev64(param_3[1],1); +- auVar23 = NEON_rev64(param_3[2],1); +- auVar24 = NEON_rev64(param_3[3],1); +- auVar25 = NEON_rev64(param_3[4],1); +- auVar26 = NEON_rev64(param_3[5],1); +- auVar27 = NEON_rev64(param_3[6],1); +- auVar29 = NEON_rev64(param_3[7],1); +- lStack_80 = auVar21._0_8_ + 0x428a2f98d728ae22; +- lStack_78 = auVar21._8_8_ + 0x7137449123ef65cd; +- plVar10 = (long *)&DAT_0; +- lStack_70 = auVar22._0_8_ + -0x4a3f043013b2c4d1; +- lStack_68 = auVar22._8_8_ + -0x164a245a7e762444; +- lStack_60 = SUB168(_DAT_1,0) + auVar23._0_8_; +- lStack_58 = SUB168(_DAT_1,8) + auVar23._8_8_; +- lStack_50 = SUB168(_DAT_2,0) + auVar24._0_8_; +- lStack_48 = SUB168(_DAT_2,8) + auVar24._8_8_; +- lStack_40 = auVar25._0_8_ + -0x27f855675cfcfdbe; +- lStack_38 = auVar25._8_8_ + 0x12835b0145706fbe; +- lStack_30 = auVar26._0_8_ + 0x243185be4ee4b28c; +- lStack_28 = auVar26._8_8_ + 0x550c7dc3d5ffb4e2; +- lStack_20 = SUB168(_DAT_3,0) + auVar27._0_8_; +- lStack_18 = SUB168(_DAT_3,8) + auVar27._8_8_; +- lStack_10 = SUB168(_DAT_4,0) + auVar29._0_8_; +- lStack_8 = SUB168(_DAT_4,8) + auVar29._8_8_; +- while( true ) { +- uVar12 = *param_1; +- uVar13 = param_1[1]; +- uVar14 = param_1[2]; +- uVar15 = param_1[3]; +- uVar16 = param_1[4]; +- uVar17 = param_1[5]; +- uVar18 = param_1[6]; +- uVar19 = param_1[7]; +- iVar20 = 4; +- do { +- plVar11 = plVar10; +- auVar39 = NEON_ext(auVar25,auVar26,8,1); +- auVar48 = NEON_ext(auVar21,auVar22,8,1); +- uVar28 = auVar29._0_8_; +- uVar31 = uVar28 >> 0x13; +- uVar30 = auVar29._8_8_; +- uVar32 = uVar30 >> 0x13; +- lVar33 = uVar28 << 3; +- lVar36 = uVar30 << 3; +- lVar35 = auVar21._8_8_; +- uVar38 = uVar28 >> 6; +- lVar2 = uVar19 + lStack_80 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 << 0x17)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar46 = auVar48._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar48._8_8_; +- uVar60 = uVar58 >> 1; +- uVar15 = uVar15 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = auVar29[7]; +- bVar5 = auVar29[15]; +- bVar7 = auVar48[7]; +- bVar6 = auVar48[15]; +- auVar50[9] = (byte)((uVar30 >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ (byte)((ulong)lVar36 >> 8); +- auVar50[10] = (byte)((auVar29._9_7_ >> 6) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar50[11] = (byte)((auVar29._10_6_ >> 6) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar50[12] = (byte)((auVar29._11_5_ >> 6) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = uVar28 << 0x2d; +- lVar37 = uVar30 << 0x2d; +- uVar19 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 << 0x1e) ^ +- (uVar12 >> 0x27 | uVar12 << 0x19)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- auVar50[8] = (byte)(uVar30 >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar49[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar48[9]; +- auVar49[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar48[10]; +- auVar49[10] = (byte)((auVar48._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar48[11]; +- auVar49[11] = (byte)((auVar48._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar48[12]; +- auVar49[12] = (byte)((auVar48._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar48[13]; +- auVar49[13] = (byte)((auVar48._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar48[14]; +- auVar49[14] = (byte)((uint3)(auVar48._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar50._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar50[13] = (byte)((auVar29._12_4_ >> 6) >> 8) ^ bVar5 >> 3 ^ (byte)((ulong)lVar36 >> 0x28) +- ^ (byte)((ulong)lVar37 >> 0x28); +- auVar50[14] = (byte)((uint3)(auVar29._13_3_ >> 6) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar50[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar49._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar48[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar48[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar48[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar48[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar48[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar48[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar48[1] +- ))))))); +- auVar49[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar48[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar18 + lStack_78; +- auVar21._0_8_ = auVar21._0_8_ + auVar39._0_8_ + auVar50._0_8_ + auVar49._0_8_; +- auVar21._8_8_ = lVar35 + auVar39._8_8_ + auVar50._8_8_ + auVar49._8_8_; +- lStack_80 = *plVar11 + auVar21._0_8_; +- lStack_78 = plVar11[1] + auVar21._8_8_; +- lVar2 = lVar2 + ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- uVar14 = uVar14 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar19 ^ uVar12 & uVar13); +- auVar39 = NEON_ext(auVar26,auVar27,8,1); +- auVar50 = NEON_ext(auVar22,auVar23,8,1); +- uVar31 = auVar21._0_8_ >> 0x13; +- uVar32 = auVar21._8_8_ >> 0x13; +- lVar33 = auVar21._0_8_ * 8; +- lVar36 = auVar21._8_8_ * 8; +- lVar35 = auVar22._8_8_; +- uVar38 = auVar21._0_8_ >> 6; +- lVar2 = uVar17 + lStack_70 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar13 = uVar13 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar21._0_8_ >> 0x38); +- bVar5 = (byte)(auVar21._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar48[9] = (byte)((auVar21._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar48[10] = (byte)((uint7)(auVar21._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar48[11] = (byte)((uint6)(auVar21._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar48[12] = (byte)((uint5)(auVar21._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar21._0_8_ << 0x2d; +- lVar37 = auVar21._8_8_ << 0x2d; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar12) & uVar18 ^ uVar19 & uVar12); +- auVar48[8] = (byte)(auVar21._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar51[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar51[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar51[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar51[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar51[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar51[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar51[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar48._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar48[13] = (byte)((uint)(auVar21._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar48[14] = (byte)((uint3)(auVar21._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar48[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar51._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar51[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar16 + lStack_68; +- auVar22._0_8_ = auVar22._0_8_ + auVar39._0_8_ + auVar48._0_8_ + auVar51._0_8_; +- auVar22._8_8_ = lVar35 + auVar39._8_8_ + auVar48._8_8_ + auVar51._8_8_; +- lStack_70 = plVar11[2] + auVar22._0_8_; +- lStack_68 = plVar11[3] + auVar22._8_8_; +- lVar2 = lVar2 + ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- uVar12 = uVar12 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- auVar39 = NEON_ext(auVar27,auVar29,8,1); +- auVar50 = NEON_ext(auVar23,auVar24,8,1); +- uVar31 = auVar22._0_8_ >> 0x13; +- uVar32 = auVar22._8_8_ >> 0x13; +- lVar33 = auVar22._0_8_ * 8; +- lVar36 = auVar22._8_8_ * 8; +- lVar35 = auVar23._8_8_; +- uVar38 = auVar22._0_8_ >> 6; +- lVar2 = uVar15 + lStack_60 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar19 = uVar19 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar22._0_8_ >> 0x38); +- bVar5 = (byte)(auVar22._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar40[9] = (byte)((auVar22._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar40[10] = (byte)((uint7)(auVar22._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar40[11] = (byte)((uint6)(auVar22._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar40[12] = (byte)((uint5)(auVar22._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar22._0_8_ << 0x2d; +- lVar37 = auVar22._8_8_ << 0x2d; +- uVar15 = lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- auVar40[8] = (byte)(auVar22._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar52[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar52[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar52[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar52[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar52[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar52[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar52[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar40._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar40[13] = (byte)((uint)(auVar22._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar40[14] = (byte)((uint3)(auVar22._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar40[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar52._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar52[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar14 + lStack_58; +- auVar23._0_8_ = auVar23._0_8_ + auVar39._0_8_ + auVar40._0_8_ + auVar52._0_8_; +- auVar23._8_8_ = lVar35 + auVar39._8_8_ + auVar40._8_8_ + auVar52._8_8_; +- lStack_60 = plVar11[4] + auVar23._0_8_; +- lStack_58 = plVar11[5] + auVar23._8_8_; +- lVar2 = lVar2 + ((uVar19 >> 0xe | uVar19 << 0x32) ^ (uVar19 >> 0x12 | uVar19 << 0x2e) ^ +- (uVar19 >> 0x29 | uVar19 * 0x800000)) + ((uVar12 ^ uVar13) & uVar19 ^ uVar13); +- uVar18 = uVar18 + lVar2; +- uVar14 = lVar2 + ((uVar15 >> 0x1c | uVar15 << 0x24) ^ (uVar15 >> 0x22 | uVar15 * 0x40000000) ^ +- (uVar15 >> 0x27 | uVar15 * 0x2000000)) + +- ((uVar16 ^ uVar17) & uVar15 ^ uVar16 & uVar17); +- auVar39 = NEON_ext(auVar29,auVar21,8,1); +- auVar50 = NEON_ext(auVar24,auVar25,8,1); +- uVar31 = auVar23._0_8_ >> 0x13; +- uVar32 = auVar23._8_8_ >> 0x13; +- lVar33 = auVar23._0_8_ * 8; +- lVar36 = auVar23._8_8_ * 8; +- lVar35 = auVar24._8_8_; +- uVar38 = auVar23._0_8_ >> 6; +- lVar2 = uVar13 + lStack_50 + +- ((uVar18 >> 0xe | uVar18 << 0x32) ^ (uVar18 >> 0x12 | uVar18 << 0x2e) ^ +- (uVar18 >> 0x29 | uVar18 * 0x800000)) + ((uVar19 ^ uVar12) & uVar18 ^ uVar12); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar17 = uVar17 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar23._0_8_ >> 0x38); +- bVar5 = (byte)(auVar23._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar41[9] = (byte)((auVar23._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar41[10] = (byte)((uint7)(auVar23._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar41[11] = (byte)((uint6)(auVar23._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar41[12] = (byte)((uint5)(auVar23._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar23._0_8_ << 0x2d; +- lVar37 = auVar23._8_8_ << 0x2d; +- uVar13 = lVar2 + ((uVar14 >> 0x1c | uVar14 << 0x24) ^ (uVar14 >> 0x22 | uVar14 * 0x40000000) ^ +- (uVar14 >> 0x27 | uVar14 * 0x2000000)) + +- ((uVar15 ^ uVar16) & uVar14 ^ uVar15 & uVar16); +- auVar41[8] = (byte)(auVar23._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar53[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar53[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar53[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar53[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar53[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar53[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar53[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar41._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar41[13] = (byte)((uint)(auVar23._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar41[14] = (byte)((uint3)(auVar23._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar41[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar53._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar53[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar12 + lStack_48; +- auVar24._0_8_ = auVar24._0_8_ + auVar39._0_8_ + auVar41._0_8_ + auVar53._0_8_; +- auVar24._8_8_ = lVar35 + auVar39._8_8_ + auVar41._8_8_ + auVar53._8_8_; +- lStack_50 = plVar11[6] + auVar24._0_8_; +- lStack_48 = plVar11[7] + auVar24._8_8_; +- lVar2 = lVar2 + ((uVar17 >> 0xe | uVar17 << 0x32) ^ (uVar17 >> 0x12 | uVar17 << 0x2e) ^ +- (uVar17 >> 0x29 | uVar17 * 0x800000)) + ((uVar18 ^ uVar19) & uVar17 ^ uVar19); +- uVar16 = uVar16 + lVar2; +- uVar12 = lVar2 + ((uVar13 >> 0x1c | uVar13 << 0x24) ^ (uVar13 >> 0x22 | uVar13 * 0x40000000) ^ +- (uVar13 >> 0x27 | uVar13 * 0x2000000)) + +- ((uVar14 ^ uVar15) & uVar13 ^ uVar14 & uVar15); +- auVar39 = NEON_ext(auVar21,auVar22,8,1); +- auVar50 = NEON_ext(auVar25,auVar26,8,1); +- uVar31 = auVar24._0_8_ >> 0x13; +- uVar32 = auVar24._8_8_ >> 0x13; +- lVar33 = auVar24._0_8_ * 8; +- lVar36 = auVar24._8_8_ * 8; +- lVar35 = auVar25._8_8_; +- uVar38 = auVar24._0_8_ >> 6; +- lVar2 = uVar19 + lStack_40 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 * 0x800000)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar15 = uVar15 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar24._0_8_ >> 0x38); +- bVar5 = (byte)(auVar24._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar42[9] = (byte)((auVar24._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar42[10] = (byte)((uint7)(auVar24._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar42[11] = (byte)((uint6)(auVar24._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar42[12] = (byte)((uint5)(auVar24._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar24._0_8_ << 0x2d; +- lVar37 = auVar24._8_8_ << 0x2d; +- uVar19 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 * 0x40000000) ^ +- (uVar12 >> 0x27 | uVar12 * 0x2000000)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- auVar42[8] = (byte)(auVar24._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar54[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar54[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar54[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar54[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar54[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar54[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar54[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar42._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar42[13] = (byte)((uint)(auVar24._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar42[14] = (byte)((uint3)(auVar24._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar42[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar54._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar54[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar18 + lStack_38; +- auVar25._0_8_ = auVar25._0_8_ + auVar39._0_8_ + auVar42._0_8_ + auVar54._0_8_; +- auVar25._8_8_ = lVar35 + auVar39._8_8_ + auVar42._8_8_ + auVar54._8_8_; +- lStack_40 = plVar11[8] + auVar25._0_8_; +- lStack_38 = plVar11[9] + auVar25._8_8_; +- lVar2 = lVar2 + ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- uVar14 = uVar14 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar19 ^ uVar12 & uVar13); +- auVar39 = NEON_ext(auVar22,auVar23,8,1); +- auVar50 = NEON_ext(auVar26,auVar27,8,1); +- uVar31 = auVar25._0_8_ >> 0x13; +- uVar32 = auVar25._8_8_ >> 0x13; +- lVar33 = auVar25._0_8_ * 8; +- lVar36 = auVar25._8_8_ * 8; +- lVar35 = auVar26._8_8_; +- uVar38 = auVar25._0_8_ >> 6; +- lVar2 = uVar17 + lStack_30 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar13 = uVar13 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar25._0_8_ >> 0x38); +- bVar5 = (byte)(auVar25._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar43[9] = (byte)((auVar25._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar43[10] = (byte)((uint7)(auVar25._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar43[11] = (byte)((uint6)(auVar25._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar43[12] = (byte)((uint5)(auVar25._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar25._0_8_ << 0x2d; +- lVar37 = auVar25._8_8_ << 0x2d; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar12) & uVar18 ^ uVar19 & uVar12); +- auVar43[8] = (byte)(auVar25._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar55[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar55[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar55[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar55[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar55[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar55[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar55[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar43._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar43[13] = (byte)((uint)(auVar25._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar43[14] = (byte)((uint3)(auVar25._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar43[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar55._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar55[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar16 + lStack_28; +- auVar26._0_8_ = auVar26._0_8_ + auVar39._0_8_ + auVar43._0_8_ + auVar55._0_8_; +- auVar26._8_8_ = lVar35 + auVar39._8_8_ + auVar43._8_8_ + auVar55._8_8_; +- lStack_30 = plVar11[10] + auVar26._0_8_; +- lStack_28 = plVar11[0xb] + auVar26._8_8_; +- lVar2 = lVar2 + ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- uVar12 = uVar12 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- auVar39 = NEON_ext(auVar23,auVar24,8,1); +- auVar50 = NEON_ext(auVar27,auVar29,8,1); +- uVar31 = auVar26._0_8_ >> 0x13; +- uVar32 = auVar26._8_8_ >> 0x13; +- lVar33 = auVar26._0_8_ * 8; +- lVar36 = auVar26._8_8_ * 8; +- lVar35 = auVar27._8_8_; +- uVar38 = auVar26._0_8_ >> 6; +- lVar2 = uVar15 + lStack_20 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar46 = auVar50._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar50._8_8_; +- uVar60 = uVar58 >> 1; +- uVar19 = uVar19 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar26._0_8_ >> 0x38); +- bVar5 = (byte)(auVar26._8_8_ >> 0x38); +- bVar7 = auVar50[7]; +- bVar6 = auVar50[15]; +- auVar44[9] = (byte)((auVar26._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar36 >> 8); +- auVar44[10] = (byte)((uint7)(auVar26._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar36 >> 0x10); +- auVar44[11] = (byte)((uint6)(auVar26._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar36 >> 0x18); +- auVar44[12] = (byte)((uint5)(auVar26._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar36 >> 0x20); +- lVar34 = auVar26._0_8_ << 0x2d; +- lVar37 = auVar26._8_8_ << 0x2d; +- uVar15 = lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- auVar44[8] = (byte)(auVar26._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar36 ^ bVar5 >> 5; +- auVar56[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar50[9]; +- auVar56[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar50[10]; +- auVar56[10] = (byte)((auVar50._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar50[11]; +- auVar56[11] = (byte)((auVar50._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar50[12]; +- auVar56[12] = (byte)((auVar50._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar50[13]; +- auVar56[13] = (byte)((auVar50._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar50[14]; +- auVar56[14] = (byte)((uint3)(auVar50._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar44._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar33 >> 0x38) ^ (byte)((ulong)lVar34 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar33 >> 0x30) ^ +- (byte)((ulong)lVar34 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar33 >> 0x28) ^ (byte)((ulong)lVar34 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar33 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar33 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar33 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar33 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar33 ^ bVar4 >> 5 +- ))))))); +- auVar44[13] = (byte)((uint)(auVar26._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar36 >> 0x28) ^ (byte)((ulong)lVar37 >> 0x28); +- auVar44[14] = (byte)((uint3)(auVar26._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar36 >> 0x30) ^ +- (byte)((ulong)lVar37 >> 0x30); +- auVar44[15] = bVar5 >> 6 ^ (byte)((ulong)lVar36 >> 0x38) ^ (byte)((ulong)lVar37 >> 0x38); +- auVar56._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar50[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar50[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar50[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar50[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar50[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar50[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar50[1] +- ))))))); +- auVar56[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar50[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar14 + lStack_18; +- auVar27._0_8_ = auVar27._0_8_ + auVar39._0_8_ + auVar44._0_8_ + auVar56._0_8_; +- auVar27._8_8_ = lVar35 + auVar39._8_8_ + auVar44._8_8_ + auVar56._8_8_; +- lStack_20 = plVar11[0xc] + auVar27._0_8_; +- lStack_18 = plVar11[0xd] + auVar27._8_8_; +- lVar2 = lVar2 + ((uVar19 >> 0xe | uVar19 << 0x32) ^ (uVar19 >> 0x12 | uVar19 << 0x2e) ^ +- (uVar19 >> 0x29 | uVar19 * 0x800000)) + ((uVar12 ^ uVar13) & uVar19 ^ uVar13); +- uVar18 = uVar18 + lVar2; +- uVar14 = lVar2 + ((uVar15 >> 0x1c | uVar15 << 0x24) ^ (uVar15 >> 0x22 | uVar15 * 0x40000000) ^ +- (uVar15 >> 0x27 | uVar15 * 0x2000000)) + +- ((uVar16 ^ uVar17) & uVar15 ^ uVar16 & uVar17); +- auVar39 = NEON_ext(auVar24,auVar25,8,1); +- auVar29 = NEON_ext(auVar29,auVar21,8,1); +- uVar31 = auVar27._0_8_ >> 0x13; +- uVar32 = auVar27._8_8_ >> 0x13; +- lVar35 = auVar27._0_8_ * 8; +- lVar34 = auVar27._8_8_ * 8; +- uVar38 = auVar27._0_8_ >> 6; +- lVar2 = uVar13 + lStack_10 + +- ((uVar18 >> 0xe | uVar18 << 0x32) ^ (uVar18 >> 0x12 | uVar18 << 0x2e) ^ +- (uVar18 >> 0x29 | uVar18 * 0x800000)) + ((uVar19 ^ uVar12) & uVar18 ^ uVar12); +- uVar46 = auVar29._0_8_; +- uVar59 = uVar46 >> 1; +- uVar58 = auVar29._8_8_; +- uVar60 = uVar58 >> 1; +- uVar17 = uVar17 + lVar2; +- uVar47 = uVar46 >> 7; +- bVar4 = (byte)(auVar27._0_8_ >> 0x38); +- bVar5 = (byte)(auVar27._8_8_ >> 0x38); +- bVar7 = auVar29[7]; +- bVar6 = auVar29[15]; +- auVar45[9] = (byte)((auVar27._8_8_ >> 6) >> 8) ^ (byte)(uVar32 >> 8) ^ +- (byte)((ulong)lVar34 >> 8); +- auVar45[10] = (byte)((uint7)(auVar27._8_8_ >> 0xe) >> 8) ^ (byte)(uVar32 >> 0x10) ^ +- (byte)((ulong)lVar34 >> 0x10); +- auVar45[11] = (byte)((uint6)(auVar27._8_8_ >> 0x16) >> 8) ^ (byte)(uVar32 >> 0x18) ^ +- (byte)((ulong)lVar34 >> 0x18); +- auVar45[12] = (byte)((uint5)(auVar27._8_8_ >> 0x1e) >> 8) ^ (byte)(uVar32 >> 0x20) ^ +- (byte)((ulong)lVar34 >> 0x20); +- lVar33 = auVar27._0_8_ << 0x2d; +- lVar36 = auVar27._8_8_ << 0x2d; +- uVar13 = lVar2 + ((uVar14 >> 0x1c | uVar14 << 0x24) ^ (uVar14 >> 0x22 | uVar14 * 0x40000000) ^ +- (uVar14 >> 0x27 | uVar14 * 0x2000000)) + +- ((uVar15 ^ uVar16) & uVar14 ^ uVar15 & uVar16); +- auVar45[8] = (byte)(auVar27._8_8_ >> 6) ^ (byte)uVar32 ^ (byte)lVar34 ^ bVar5 >> 5; +- auVar57[8] = (byte)(uVar58 >> 7) ^ (byte)uVar60 ^ auVar29[9]; +- auVar57[9] = (byte)((uVar58 >> 7) >> 8) ^ (byte)(uVar60 >> 8) ^ auVar29[10]; +- auVar57[10] = (byte)((auVar29._9_7_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x10) ^ auVar29[11]; +- auVar57[11] = (byte)((auVar29._10_6_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x18) ^ auVar29[12]; +- auVar57[12] = (byte)((auVar29._11_5_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x20) ^ auVar29[13]; +- auVar57[13] = (byte)((auVar29._12_4_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x28) ^ auVar29[14]; +- auVar57[14] = (byte)((uint3)(auVar29._13_3_ >> 7) >> 8) ^ (byte)(uVar60 >> 0x30) ^ bVar6; +- auVar45._0_8_ = +- CONCAT17(bVar4 >> 6 ^ (byte)((ulong)lVar35 >> 0x38) ^ (byte)((ulong)lVar33 >> 0x38), +- CONCAT16((byte)(uVar38 >> 0x30) ^ (byte)((ulong)lVar35 >> 0x30) ^ +- (byte)((ulong)lVar33 >> 0x30), +- CONCAT15((byte)(uVar38 >> 0x28) ^ bVar4 >> 3 ^ +- (byte)((ulong)lVar35 >> 0x28) ^ (byte)((ulong)lVar33 >> 0x28), +- CONCAT14((byte)(uVar38 >> 0x20) ^ (byte)(uVar31 >> 0x20) ^ +- (byte)((ulong)lVar35 >> 0x20), +- CONCAT13((byte)(uVar38 >> 0x18) ^ +- (byte)(uVar31 >> 0x18) ^ +- (byte)((ulong)lVar35 >> 0x18), +- CONCAT12((byte)(uVar38 >> 0x10) ^ +- (byte)(uVar31 >> 0x10) ^ +- (byte)((ulong)lVar35 >> 0x10), +- CONCAT11((byte)(uVar38 >> 8) ^ +- (byte)(uVar31 >> 8) ^ +- (byte)((ulong)lVar35 >> 8) +- ,(byte)uVar38 ^ +- (byte)uVar31 ^ +- (byte)lVar35 ^ bVar4 >> 5 +- ))))))); +- auVar45[13] = (byte)((uint)(auVar27._8_8_ >> 0x26) >> 8) ^ bVar5 >> 3 ^ +- (byte)((ulong)lVar34 >> 0x28) ^ (byte)((ulong)lVar36 >> 0x28); +- auVar45[14] = (byte)((uint3)(auVar27._8_8_ >> 0x2e) >> 8) ^ (byte)((ulong)lVar34 >> 0x30) ^ +- (byte)((ulong)lVar36 >> 0x30); +- auVar45[15] = bVar5 >> 6 ^ (byte)((ulong)lVar34 >> 0x38) ^ (byte)((ulong)lVar36 >> 0x38); +- auVar57._0_8_ = +- CONCAT17(bVar7 >> 7 ^ bVar7 >> 1 ^ auVar29[0] ^ (byte)((uVar46 << 0x3f) >> 0x38), +- CONCAT16((byte)(uVar47 >> 0x30) ^ (byte)(uVar59 >> 0x30) ^ bVar7, +- CONCAT15((byte)(uVar47 >> 0x28) ^ (byte)(uVar59 >> 0x28) ^ auVar29[6], +- CONCAT14((byte)(uVar47 >> 0x20) ^ (byte)(uVar59 >> 0x20) ^ +- auVar29[5], +- CONCAT13((byte)(uVar47 >> 0x18) ^ +- (byte)(uVar59 >> 0x18) ^ auVar29[4], +- CONCAT12((byte)(uVar47 >> 0x10) ^ +- (byte)(uVar59 >> 0x10) ^ auVar29[3] +- ,CONCAT11((byte)(uVar47 >> 8) ^ +- (byte)(uVar59 >> 8) ^ +- auVar29[2], +- (byte)uVar47 ^ +- (byte)uVar59 ^ auVar29[1] +- ))))))); +- auVar57[15] = bVar6 >> 7 ^ bVar6 >> 1 ^ auVar29[8] ^ (byte)((uVar58 << 0x3f) >> 0x38); +- lVar2 = uVar12 + lStack_8; +- auVar29._0_8_ = uVar28 + auVar39._0_8_ + auVar45._0_8_ + auVar57._0_8_; +- auVar29._8_8_ = uVar30 + auVar39._8_8_ + auVar45._8_8_ + auVar57._8_8_; +- lStack_10 = plVar11[0xe] + auVar29._0_8_; +- lStack_8 = plVar11[0xf] + auVar29._8_8_; +- lVar2 = lVar2 + ((uVar17 >> 0xe | uVar17 << 0x32) ^ (uVar17 >> 0x12 | uVar17 << 0x2e) ^ +- (uVar17 >> 0x29 | uVar17 * 0x800000)) + ((uVar18 ^ uVar19) & uVar17 ^ uVar19); +- uVar16 = uVar16 + lVar2; +- uVar12 = lVar2 + ((uVar13 >> 0x1c | uVar13 << 0x24) ^ (uVar13 >> 0x22 | uVar13 * 0x40000000) ^ +- (uVar13 >> 0x27 | uVar13 * 0x2000000)) + +- ((uVar14 ^ uVar15) & uVar13 ^ uVar14 & uVar15); +- iVar3 = iVar20 + -1; +- bVar1 = 0 < iVar20; +- plVar10 = plVar11 + 0x10; +- iVar20 = iVar3; +- } while (iVar3 != 0 && bVar1); +- param_2 = param_2 + -1; +- if (param_2 == 0) break; +- lVar2 = uVar19 + lStack_80 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 * 0x800000)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar15 = uVar15 + lVar2; +- uVar19 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 * 0x40000000) ^ +- (uVar12 >> 0x27 | uVar12 * 0x2000000)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- auVar21 = NEON_rev64(*pauVar9,1); +- lVar2 = uVar18 + lStack_78 + +- ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- lStack_80 = plVar11[-0x40] + auVar21._0_8_; +- lStack_78 = plVar11[-0x3f] + auVar21._8_8_; +- uVar14 = uVar14 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar19 ^ uVar12 & uVar13); +- lVar2 = uVar17 + lStack_70 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar13 = uVar13 + lVar2; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar12) & uVar18 ^ uVar19 & uVar12); +- auVar22 = NEON_rev64(pauVar9[1],1); +- lVar2 = uVar16 + lStack_68 + +- ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- lStack_70 = plVar11[-0x3e] + auVar22._0_8_; +- lStack_68 = plVar11[-0x3d] + auVar22._8_8_; +- uVar12 = uVar12 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- lVar2 = uVar15 + lStack_60 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar19 = uVar19 + lVar2; +- uVar15 = lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- auVar23 = NEON_rev64(pauVar9[2],1); +- lVar2 = uVar14 + lStack_58 + +- ((uVar19 >> 0xe | uVar19 << 0x32) ^ (uVar19 >> 0x12 | uVar19 << 0x2e) ^ +- (uVar19 >> 0x29 | uVar19 * 0x800000)) + ((uVar12 ^ uVar13) & uVar19 ^ uVar13); +- lStack_60 = plVar11[-0x3c] + auVar23._0_8_; +- lStack_58 = plVar11[-0x3b] + auVar23._8_8_; +- uVar18 = uVar18 + lVar2; +- uVar14 = lVar2 + ((uVar15 >> 0x1c | uVar15 << 0x24) ^ (uVar15 >> 0x22 | uVar15 * 0x40000000) ^ +- (uVar15 >> 0x27 | uVar15 * 0x2000000)) + +- ((uVar16 ^ uVar17) & uVar15 ^ uVar16 & uVar17); +- lVar2 = uVar13 + lStack_50 + +- ((uVar18 >> 0xe | uVar18 << 0x32) ^ (uVar18 >> 0x12 | uVar18 << 0x2e) ^ +- (uVar18 >> 0x29 | uVar18 * 0x800000)) + ((uVar19 ^ uVar12) & uVar18 ^ uVar12); +- uVar17 = uVar17 + lVar2; +- uVar13 = lVar2 + ((uVar14 >> 0x1c | uVar14 << 0x24) ^ (uVar14 >> 0x22 | uVar14 * 0x40000000) ^ +- (uVar14 >> 0x27 | uVar14 * 0x2000000)) + +- ((uVar15 ^ uVar16) & uVar14 ^ uVar15 & uVar16); +- auVar24 = NEON_rev64(pauVar9[3],1); +- lVar2 = uVar12 + lStack_48 + +- ((uVar17 >> 0xe | uVar17 << 0x32) ^ (uVar17 >> 0x12 | uVar17 << 0x2e) ^ +- (uVar17 >> 0x29 | uVar17 * 0x800000)) + ((uVar18 ^ uVar19) & uVar17 ^ uVar19); +- lStack_50 = plVar11[-0x3a] + auVar24._0_8_; +- lStack_48 = plVar11[-0x39] + auVar24._8_8_; +- uVar16 = uVar16 + lVar2; +- uVar12 = lVar2 + ((uVar13 >> 0x1c | uVar13 << 0x24) ^ (uVar13 >> 0x22 | uVar13 * 0x40000000) ^ +- (uVar13 >> 0x27 | uVar13 * 0x2000000)) + +- ((uVar14 ^ uVar15) & uVar13 ^ uVar14 & uVar15); +- lVar2 = uVar19 + lStack_40 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 * 0x800000)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar15 = uVar15 + lVar2; +- uVar28 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 * 0x40000000) ^ +- (uVar12 >> 0x27 | uVar12 * 0x2000000)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- auVar25 = NEON_rev64(pauVar9[4],1); +- lVar2 = uVar18 + lStack_38 + +- ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- lStack_40 = plVar11[-0x38] + auVar25._0_8_; +- lStack_38 = plVar11[-0x37] + auVar25._8_8_; +- uVar14 = uVar14 + lVar2; +- uVar30 = lVar2 + ((uVar28 >> 0x1c | uVar28 << 0x24) ^ (uVar28 >> 0x22 | uVar28 * 0x40000000) ^ +- (uVar28 >> 0x27 | uVar28 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar28 ^ uVar12 & uVar13); +- lVar2 = uVar17 + lStack_30 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar13 = uVar13 + lVar2; +- uVar31 = lVar2 + ((uVar30 >> 0x1c | uVar30 << 0x24) ^ (uVar30 >> 0x22 | uVar30 * 0x40000000) ^ +- (uVar30 >> 0x27 | uVar30 * 0x2000000)) + +- ((uVar28 ^ uVar12) & uVar30 ^ uVar28 & uVar12); +- auVar26 = NEON_rev64(pauVar9[5],1); +- lVar2 = uVar16 + lStack_28 + +- ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- lStack_30 = plVar11[-0x36] + auVar26._0_8_; +- lStack_28 = plVar11[-0x35] + auVar26._8_8_; +- uVar12 = uVar12 + lVar2; +- uVar19 = lVar2 + ((uVar31 >> 0x1c | uVar31 << 0x24) ^ (uVar31 >> 0x22 | uVar31 * 0x40000000) ^ +- (uVar31 >> 0x27 | uVar31 * 0x2000000)) + +- ((uVar30 ^ uVar28) & uVar31 ^ uVar30 & uVar28); +- pauVar8 = pauVar9 + 7; +- lVar2 = uVar15 + lStack_20 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar28 = uVar28 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar31 ^ uVar30) & uVar19 ^ uVar31 & uVar30); +- auVar27 = NEON_rev64(pauVar9[6],1); +- lVar2 = uVar14 + lStack_18 + +- ((uVar28 >> 0xe | uVar28 << 0x32) ^ (uVar28 >> 0x12 | uVar28 << 0x2e) ^ +- (uVar28 >> 0x29 | uVar28 * 0x800000)) + ((uVar12 ^ uVar13) & uVar28 ^ uVar13); +- lStack_20 = plVar11[-0x34] + auVar27._0_8_; +- lStack_18 = plVar11[-0x33] + auVar27._8_8_; +- uVar30 = uVar30 + lVar2; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar31) & uVar18 ^ uVar19 & uVar31); +- pauVar9 = pauVar9 + 8; +- lVar2 = uVar13 + lStack_10 + +- ((uVar30 >> 0xe | uVar30 << 0x32) ^ (uVar30 >> 0x12 | uVar30 << 0x2e) ^ +- (uVar30 >> 0x29 | uVar30 * 0x800000)) + ((uVar28 ^ uVar12) & uVar30 ^ uVar12); +- plVar10 = plVar11 + -0x30; +- uVar31 = uVar31 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- auVar29 = NEON_rev64(*pauVar8,1); +- lVar2 = uVar12 + lStack_8 + +- ((uVar31 >> 0xe | uVar31 << 0x32) ^ (uVar31 >> 0x12 | uVar31 << 0x2e) ^ +- (uVar31 >> 0x29 | uVar31 * 0x800000)) + ((uVar30 ^ uVar28) & uVar31 ^ uVar28); +- lStack_10 = plVar11[-0x32] + auVar29._0_8_; +- lStack_8 = plVar11[-0x31] + auVar29._8_8_; +- *param_1 = *param_1 + +- lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- param_1[1] = param_1[1] + uVar16; +- param_1[2] = param_1[2] + uVar17; +- param_1[3] = param_1[3] + uVar18; +- param_1[4] = param_1[4] + uVar19 + lVar2; +- param_1[5] = param_1[5] + uVar31; +- param_1[6] = param_1[6] + uVar30; +- param_1[7] = param_1[7] + uVar28; +- } +- lVar2 = uVar19 + lStack_80 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 * 0x800000)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar15 = uVar15 + lVar2; +- uVar19 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 * 0x40000000) ^ +- (uVar12 >> 0x27 | uVar12 * 0x2000000)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- lVar2 = uVar18 + lStack_78 + +- ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- uVar14 = uVar14 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar19 ^ uVar12 & uVar13); +- lVar2 = uVar17 + lStack_70 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar13 = uVar13 + lVar2; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar12) & uVar18 ^ uVar19 & uVar12); +- lVar2 = uVar16 + lStack_68 + +- ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- uVar12 = uVar12 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- lVar2 = uVar15 + lStack_60 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar19 = uVar19 + lVar2; +- uVar15 = lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- lVar2 = uVar14 + lStack_58 + +- ((uVar19 >> 0xe | uVar19 << 0x32) ^ (uVar19 >> 0x12 | uVar19 << 0x2e) ^ +- (uVar19 >> 0x29 | uVar19 * 0x800000)) + ((uVar12 ^ uVar13) & uVar19 ^ uVar13); +- uVar18 = uVar18 + lVar2; +- uVar14 = lVar2 + ((uVar15 >> 0x1c | uVar15 << 0x24) ^ (uVar15 >> 0x22 | uVar15 * 0x40000000) ^ +- (uVar15 >> 0x27 | uVar15 * 0x2000000)) + +- ((uVar16 ^ uVar17) & uVar15 ^ uVar16 & uVar17); +- lVar2 = uVar13 + lStack_50 + +- ((uVar18 >> 0xe | uVar18 << 0x32) ^ (uVar18 >> 0x12 | uVar18 << 0x2e) ^ +- (uVar18 >> 0x29 | uVar18 * 0x800000)) + ((uVar19 ^ uVar12) & uVar18 ^ uVar12); +- uVar17 = uVar17 + lVar2; +- uVar13 = lVar2 + ((uVar14 >> 0x1c | uVar14 << 0x24) ^ (uVar14 >> 0x22 | uVar14 * 0x40000000) ^ +- (uVar14 >> 0x27 | uVar14 * 0x2000000)) + +- ((uVar15 ^ uVar16) & uVar14 ^ uVar15 & uVar16); +- lVar2 = uVar12 + lStack_48 + +- ((uVar17 >> 0xe | uVar17 << 0x32) ^ (uVar17 >> 0x12 | uVar17 << 0x2e) ^ +- (uVar17 >> 0x29 | uVar17 * 0x800000)) + ((uVar18 ^ uVar19) & uVar17 ^ uVar19); +- uVar16 = uVar16 + lVar2; +- uVar12 = lVar2 + ((uVar13 >> 0x1c | uVar13 << 0x24) ^ (uVar13 >> 0x22 | uVar13 * 0x40000000) ^ +- (uVar13 >> 0x27 | uVar13 * 0x2000000)) + +- ((uVar14 ^ uVar15) & uVar13 ^ uVar14 & uVar15); +- lVar2 = uVar19 + lStack_40 + +- ((uVar16 >> 0xe | uVar16 << 0x32) ^ (uVar16 >> 0x12 | uVar16 << 0x2e) ^ +- (uVar16 >> 0x29 | uVar16 * 0x800000)) + ((uVar17 ^ uVar18) & uVar16 ^ uVar18); +- uVar15 = uVar15 + lVar2; +- uVar28 = lVar2 + ((uVar12 >> 0x1c | uVar12 << 0x24) ^ (uVar12 >> 0x22 | uVar12 * 0x40000000) ^ +- (uVar12 >> 0x27 | uVar12 * 0x2000000)) + +- ((uVar13 ^ uVar14) & uVar12 ^ uVar13 & uVar14); +- lVar2 = uVar18 + lStack_38 + +- ((uVar15 >> 0xe | uVar15 << 0x32) ^ (uVar15 >> 0x12 | uVar15 << 0x2e) ^ +- (uVar15 >> 0x29 | uVar15 * 0x800000)) + ((uVar16 ^ uVar17) & uVar15 ^ uVar17); +- uVar14 = uVar14 + lVar2; +- uVar30 = lVar2 + ((uVar28 >> 0x1c | uVar28 << 0x24) ^ (uVar28 >> 0x22 | uVar28 * 0x40000000) ^ +- (uVar28 >> 0x27 | uVar28 * 0x2000000)) + +- ((uVar12 ^ uVar13) & uVar28 ^ uVar12 & uVar13); +- lVar2 = uVar17 + lStack_30 + +- ((uVar14 >> 0xe | uVar14 << 0x32) ^ (uVar14 >> 0x12 | uVar14 << 0x2e) ^ +- (uVar14 >> 0x29 | uVar14 * 0x800000)) + ((uVar15 ^ uVar16) & uVar14 ^ uVar16); +- uVar13 = uVar13 + lVar2; +- uVar31 = lVar2 + ((uVar30 >> 0x1c | uVar30 << 0x24) ^ (uVar30 >> 0x22 | uVar30 * 0x40000000) ^ +- (uVar30 >> 0x27 | uVar30 * 0x2000000)) + +- ((uVar28 ^ uVar12) & uVar30 ^ uVar28 & uVar12); +- lVar2 = uVar16 + lStack_28 + +- ((uVar13 >> 0xe | uVar13 << 0x32) ^ (uVar13 >> 0x12 | uVar13 << 0x2e) ^ +- (uVar13 >> 0x29 | uVar13 * 0x800000)) + ((uVar14 ^ uVar15) & uVar13 ^ uVar15); +- uVar12 = uVar12 + lVar2; +- uVar19 = lVar2 + ((uVar31 >> 0x1c | uVar31 << 0x24) ^ (uVar31 >> 0x22 | uVar31 * 0x40000000) ^ +- (uVar31 >> 0x27 | uVar31 * 0x2000000)) + +- ((uVar30 ^ uVar28) & uVar31 ^ uVar30 & uVar28); +- lVar2 = uVar15 + lStack_20 + +- ((uVar12 >> 0xe | uVar12 << 0x32) ^ (uVar12 >> 0x12 | uVar12 << 0x2e) ^ +- (uVar12 >> 0x29 | uVar12 * 0x800000)) + ((uVar13 ^ uVar14) & uVar12 ^ uVar14); +- uVar28 = uVar28 + lVar2; +- uVar18 = lVar2 + ((uVar19 >> 0x1c | uVar19 << 0x24) ^ (uVar19 >> 0x22 | uVar19 * 0x40000000) ^ +- (uVar19 >> 0x27 | uVar19 * 0x2000000)) + +- ((uVar31 ^ uVar30) & uVar19 ^ uVar31 & uVar30); +- lVar2 = uVar14 + lStack_18 + +- ((uVar28 >> 0xe | uVar28 << 0x32) ^ (uVar28 >> 0x12 | uVar28 << 0x2e) ^ +- (uVar28 >> 0x29 | uVar28 * 0x800000)) + ((uVar12 ^ uVar13) & uVar28 ^ uVar13); +- uVar30 = uVar30 + lVar2; +- uVar17 = lVar2 + ((uVar18 >> 0x1c | uVar18 << 0x24) ^ (uVar18 >> 0x22 | uVar18 * 0x40000000) ^ +- (uVar18 >> 0x27 | uVar18 * 0x2000000)) + +- ((uVar19 ^ uVar31) & uVar18 ^ uVar19 & uVar31); +- lVar2 = uVar13 + lStack_10 + +- ((uVar30 >> 0xe | uVar30 << 0x32) ^ (uVar30 >> 0x12 | uVar30 << 0x2e) ^ +- (uVar30 >> 0x29 | uVar30 * 0x800000)) + ((uVar28 ^ uVar12) & uVar30 ^ uVar12); +- uVar31 = uVar31 + lVar2; +- uVar16 = lVar2 + ((uVar17 >> 0x1c | uVar17 << 0x24) ^ (uVar17 >> 0x22 | uVar17 * 0x40000000) ^ +- (uVar17 >> 0x27 | uVar17 * 0x2000000)) + +- ((uVar18 ^ uVar19) & uVar17 ^ uVar18 & uVar19); +- lVar2 = uVar12 + lStack_8 + +- ((uVar31 >> 0xe | uVar31 << 0x32) ^ (uVar31 >> 0x12 | uVar31 << 0x2e) ^ +- (uVar31 >> 0x29 | uVar31 * 0x800000)) + ((uVar30 ^ uVar28) & uVar31 ^ uVar28); +- *param_1 = *param_1 + +- lVar2 + ((uVar16 >> 0x1c | uVar16 << 0x24) ^ (uVar16 >> 0x22 | uVar16 * 0x40000000) ^ +- (uVar16 >> 0x27 | uVar16 * 0x2000000)) + +- ((uVar17 ^ uVar18) & uVar16 ^ uVar17 & uVar18); +- param_1[1] = param_1[1] + uVar16; +- param_1[2] = param_1[2] + uVar17; +- param_1[3] = param_1[3] + uVar18; +- param_1[4] = param_1[4] + uVar19 + lVar2; +- param_1[5] = param_1[5] + uVar31; +- param_1[6] = param_1[6] + uVar30; +- param_1[7] = param_1[7] + uVar28; ++ _AccelerateCrypto_SHA512_compress_hwassist(); + return; + } + + +``` + + +## _PQCLEAN_KYBER_CLEAN_crypto_kem_enc + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|code,length,address,called| +|ratio|0.39| +|i_ratio|0.27| +|m_ratio|0.71| +|b_ratio|0.76| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_PQCLEAN_KYBER_CLEAN_crypto_kem_enc|_PQCLEAN_KYBER_CLEAN_crypto_kem_enc| +|fullname|_PQCLEAN_KYBER_CLEAN_crypto_kem_enc|_PQCLEAN_KYBER_CLEAN_crypto_kem_enc| +|refcount|3|3| +|`length`|240|152| +|`called`|_PQCLEAN_KYBER_CLEAN_indcpa_enc
_ccdigest
_ccsha3_256_di
_ccsha3_512_di|_PQCLEAN_KYBER_CLEAN_crypto_kem_enc_msg| +|calling|_cckem_kyber1024_encapsulate
_cckem_kyber768_encapsulate|_cckem_kyber1024_encapsulate
_cckem_kyber768_encapsulate| +|paramcount|0|0| +|`address`|1f1d347b4|1f1e4c39c| +|sig|undefined _PQCLEAN_KYBER_CLEAN_crypto_kem_enc(void)|undefined _PQCLEAN_KYBER_CLEAN_crypto_kem_enc(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _PQCLEAN_KYBER_CLEAN_crypto_kem_enc Called Diff + + +```diff +--- _PQCLEAN_KYBER_CLEAN_crypto_kem_enc called ++++ _PQCLEAN_KYBER_CLEAN_crypto_kem_enc called +@@ -1,4 +1 @@ +-_PQCLEAN_KYBER_CLEAN_indcpa_enc +-_ccdigest +-_ccsha3_256_di +-_ccsha3_512_di ++_PQCLEAN_KYBER_CLEAN_crypto_kem_enc_msg +``` + + +### _PQCLEAN_KYBER_CLEAN_crypto_kem_enc Diff + + +```diff +--- _PQCLEAN_KYBER_CLEAN_crypto_kem_enc ++++ _PQCLEAN_KYBER_CLEAN_crypto_kem_enc +@@ -1,41 +1,24 @@ + + /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ + + void _PQCLEAN_KYBER_CLEAN_crypto_kem_enc +- (int *param_1,undefined8 param_2,undefined8 *param_3,undefined8 param_4, ++ (undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4, + code **param_5) + + { + int iVar1; +- undefined8 uVar2; +- undefined8 local_c8; +- undefined8 uStack_c0; +- undefined8 local_b8; +- undefined8 uStack_b0; +- undefined auStack_a8 [32]; +- undefined auStack_88 [32]; +- undefined auStack_68 [32]; +- long local_48; ++ undefined auStack_58 [32]; ++ long local_38; + +- local_48 = *_DAT_0; +- iVar1 = (**param_5)(param_5,0x20,auStack_88); ++ local_38 = *_DAT_0; ++ iVar1 = (**param_5)(param_5,0x20,auStack_58); + if (iVar1 == 0) { +- uVar2 = _ccsha3_256_di(); +- _ccdigest(uVar2,*param_1 * 0x180 | 0x20,param_4,auStack_68); +- uVar2 = _ccsha3_512_di(); +- _ccdigest(uVar2,0x40,auStack_88,&local_c8); +- iVar1 = _PQCLEAN_KYBER_CLEAN_indcpa_enc(param_1,param_2,auStack_88,param_4,auStack_a8); +- if (iVar1 == 0) { +- param_3[1] = uStack_c0; +- *param_3 = local_c8; +- param_3[3] = uStack_b0; +- param_3[2] = local_b8; +- } ++ _PQCLEAN_KYBER_CLEAN_crypto_kem_enc_msg(param_1,param_2,param_3,param_4,auStack_58); + } +- if (*_DAT_0 == local_48) { ++ if (*_DAT_0 == local_38) { + return; + } +- func_0x0001f2769220(); ++ func_0x0001f2881250(); + return; + } + + +``` + + +## _PQCLEAN_KYBER_CLEAN_indcpa_dec_ws + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|code,length,address| +|ratio|0.45| +|i_ratio|0.6| +|m_ratio|0.89| +|b_ratio|0.92| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_PQCLEAN_KYBER_CLEAN_indcpa_dec_ws|_PQCLEAN_KYBER_CLEAN_indcpa_dec_ws| +|fullname|_PQCLEAN_KYBER_CLEAN_indcpa_dec_ws|_PQCLEAN_KYBER_CLEAN_indcpa_dec_ws| +|refcount|2|2| +|`length`|304|332| +|called|_cckyber_ntt_inverse
_cckyber_poly_decompress
_cckyber_poly_reduce
_cckyber_poly_sub
_cckyber_poly_to_msg
_cckyber_polyvec_basemul
_cckyber_polyvec_decode
_cckyber_polyvec_decompress
_cckyber_polyvec_ntt_forward|_cckyber_ntt_inverse
_cckyber_poly_decompress
_cckyber_poly_reduce
_cckyber_poly_sub
_cckyber_poly_to_msg
_cckyber_polyvec_basemul
_cckyber_polyvec_decode
_cckyber_polyvec_decompress
_cckyber_polyvec_ntt_forward| +|calling|_PQCLEAN_KYBER_CLEAN_crypto_kem_dec|_PQCLEAN_KYBER_CLEAN_crypto_kem_dec| +|paramcount|0|0| +|`address`|1f1d46bfc|1f1e5e770| +|sig|undefined _PQCLEAN_KYBER_CLEAN_indcpa_dec_ws(void)|undefined _PQCLEAN_KYBER_CLEAN_indcpa_dec_ws(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _PQCLEAN_KYBER_CLEAN_indcpa_dec_ws Diff + + +```diff +--- _PQCLEAN_KYBER_CLEAN_indcpa_dec_ws ++++ _PQCLEAN_KYBER_CLEAN_indcpa_dec_ws +@@ -1,32 +1,34 @@ + + void _PQCLEAN_KYBER_CLEAN_indcpa_dec_ws + (long param_1,uint *param_2,undefined8 param_3,long param_4,undefined8 param_5) + + { + uint uVar1; +- undefined8 uVar2; ++ uint uVar2; + undefined8 uVar3; + undefined8 uVar4; + undefined8 uVar5; + undefined8 uVar6; ++ undefined8 uVar7; + + uVar1 = *param_2; +- uVar6 = *(undefined8 *)(param_1 + 0x10); +- uVar2 = (**(code **)(param_1 + 0x18))(param_1,0x40); ++ uVar7 = *(undefined8 *)(param_1 + 0x10); + uVar3 = (**(code **)(param_1 + 0x18))(param_1,0x40); +- uVar4 = (**(code **)(param_1 + 0x18))(param_1,(ulong)uVar1 << 6); ++ uVar4 = (**(code **)(param_1 + 0x18))(param_1,0x40); + uVar5 = (**(code **)(param_1 + 0x18))(param_1,(ulong)uVar1 << 6); +- _cckyber_polyvec_decompress(param_2,uVar4,param_4); +- _cckyber_poly_decompress(param_2,uVar2,param_4 + (ulong)((*param_2 * param_2[1] & 0xffffff) << 5)) +- ; +- _cckyber_polyvec_decode(param_2,uVar5,param_5); +- _cckyber_polyvec_ntt_forward(param_2,uVar4); +- _cckyber_polyvec_basemul(param_2,uVar3,uVar5,uVar4); +- _cckyber_ntt_inverse(uVar3); +- _cckyber_poly_sub(uVar3,uVar2,uVar3); +- _cckyber_poly_reduce(uVar3); +- _cckyber_poly_to_msg(param_3,uVar3); +- *(undefined8 *)(param_1 + 0x10) = uVar6; ++ uVar6 = (**(code **)(param_1 + 0x18))(param_1,(ulong)uVar1 << 6); ++ uVar1 = param_2[2]; ++ uVar2 = *param_2; ++ _cckyber_polyvec_decompress(param_2,uVar5,param_4); ++ _cckyber_poly_decompress(param_2,uVar3,param_4 + (ulong)(uVar1 * uVar2 * 0x20)); ++ _cckyber_polyvec_decode(param_2,uVar6,param_5); ++ _cckyber_polyvec_ntt_forward(param_2,uVar5); ++ _cckyber_polyvec_basemul(param_2,uVar4,uVar6,uVar5); ++ _cckyber_ntt_inverse(uVar4); ++ _cckyber_poly_sub(uVar4,uVar3,uVar4); ++ _cckyber_poly_reduce(uVar4); ++ _cckyber_poly_to_msg(param_3,uVar4); ++ *(undefined8 *)(param_1 + 0x10) = uVar7; + return; + } + + +``` + + +# Modified (No Code Changes) + + +*Slightly modified functions have no code changes, rather differnces in:* +- refcount +- length +- called +- calling +- name +- fullname + +## _CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|refcount,address,calling| +|ratio|1.0| +|i_ratio|0.95| +|m_ratio|1.0| +|b_ratio|1.0| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N|_CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N| +|fullname|_CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N|_CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N| +|`refcount`|3|2| +|length|76|76| +|called|_CCPOLYZP_PO2CYC_CTX_Q_PROD_WORKSPACE_N|_CCPOLYZP_PO2CYC_CTX_Q_PROD_WORKSPACE_N| +|`calling`|_ccbfv_param_ctx_init|_CCBFV_PARAM_CTX_INIT_WORKSPACE_N| +|paramcount|0|0| +|`address`|1f1d63194|1f1e7ad24| +|sig|undefined _CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N(void)|undefined _CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N Calling Diff + + +```diff +--- _CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N calling ++++ _CCBFV_CIPHER_PLAIN_CTX_INIT_WORKSPACE_N calling +@@ -1 +1 @@ +-_ccbfv_param_ctx_init ++_CCBFV_PARAM_CTX_INIT_WORKSPACE_N +``` + + +## _AccelerateCrypto_SHA512_compress + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|refcount,address| +|ratio|1.0| +|i_ratio|1.0| +|m_ratio|1.0| +|b_ratio|1.0| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_AccelerateCrypto_SHA512_compress|_AccelerateCrypto_SHA512_compress| +|fullname|_AccelerateCrypto_SHA512_compress|_AccelerateCrypto_SHA512_compress| +|`refcount`|7|4| +|length|5228|5228| +|called||| +|calling|_ccsha384_vng_arm_compress
_ccsha512_256_vng_arm_compress
_ccsha512_vng_arm_compress|_ccsha384_vng_arm_compress
_ccsha512_256_vng_arm_compress
_ccsha512_vng_arm_compress| +|paramcount|0|0| +|`address`|1f1d2a780|1f1e42240| +|sig|undefined _AccelerateCrypto_SHA512_compress(void)|undefined _AccelerateCrypto_SHA512_compress(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +## _cc_clear + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|refcount,address,calling| +|ratio|1.0| +|i_ratio|0.8| +|m_ratio|1.0| +|b_ratio|1.0| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_cc_clear|_cc_clear| +|fullname|_cc_clear|_cc_clear| +|`refcount`|295|307| +|length|20|20| +|called||| +|`calling`|
Expand for full list:
_PQCLEAN_KYBER_CLEAN_gen_matrix
_PQCLEAN_KYBER_CLEAN_kyber_shake256_prf
_PQCLEAN_KYBER_CLEAN_kyber_shake256_rkprf
_cc_ws_free
_ccaes_unwind_with_ecb
_ccansikdf_x963_iovec
_ccbfv_ciphertext_galois_key_switch_ws
_ccbfv_encrypt_zero_symmetric_helper_ws
_cccbc_clear_iv
_cccbc_one_shot_explicit
_ccccm_finalize_and_verify_tag
_ccccm_one_shot
_ccccm_one_shot_decrypt
_ccccm_one_shot_encrypt
_cccfb8_one_shot
_cccfb_one_shot
_ccchacha20_final
_ccckg_contributor_commit
_ccckg_contributor_finish
_ccckg_init
_ccckg_owner_finish
_cccmac_final_generate
_cccmac_generate_subkeys
_cccmac_one_shot_generate
_cccmac_one_shot_verify
_ccctr_one_shot
_cccurve25519_internal
_cccurve448_internal
_ccdes_cbc_cksum
_ccdh_pairwise_consistency_check_ws
_ccdigest
_ccdigest_final_64be
_ccdigest_final_64le
_ccdrbg_df_bc_derive_keys
_ccdrbg_df_derive_keys
_ccec_generate_blinding_keys
_ccec_rfc6637_kdf
_ccec_rfc6637_unwrap_key_ws
_ccec_rfc6637_wrap_core_ws
_ccec_sign_internal_ws
_ccecb_one_shot_explicit
_ccecdh_compute_shared_secret_ws
_ccecdh_pairwise_consistency_check_ws
_ccecies_decrypt_gcm
_ccecies_decrypt_gcm_composite
_ccecies_decrypt_gcm_decrypt
_ccecies_decrypt_gcm_from_shared_secret
_ccecies_decrypt_gcm_from_shared_secret_composite
_ccecies_encrypt_gcm
_ccecies_encrypt_gcm_encrypt
_ccecies_encrypt_gcm_from_shared_secret
_ccecies_encrypt_gcm_from_shared_secret_composite
_cced25519_double_scalar_mult_ws
_cced25519_hash_to_scalar_ws
_cced25519_make_pub_internal
_cced25519_sign_internal
_cced25519_sign_with_rng
_cced448_double_scalar_mult_ws
_cced448_make_pub
_cced448_scalar_mult_ws
_cced448_shake_to_scalar_ws
_cced448_sign_ws
_ccentropy_digest_get_seed
_ccentropy_list_get_seed
_ccgcm_one_shot
_ccgcm_one_shot_legacy
_ccgcm_set_iv_legacy
_cchkdf
_cchkdf_expand
_cchmac
_cchpke_extract_and_expand
_cchpke_initiator_seal
_cchpke_initiator_setup_deterministic
_cchpke_labeled_expand
_cchpke_labeled_extract
_cchpke_responder_open
_cchpke_responder_setup
_cclr_permute
_ccmgf
_ccmode_ccm_reset
_ccmode_ccm_set_iv
_ccmode_cfb8_init
_ccmode_cfb_init
_ccmode_gcm_reset
_ccmode_gcm_set_iv
_ccmode_siv_auth_finalize
_ccmode_siv_decrypt
_ccmode_siv_encrypt
_ccmode_siv_hmac_auth_finalize
_ccmode_siv_hmac_decrypt
_ccmode_siv_hmac_encrypt
_ccmode_siv_hmac_temp_key_gen
_ccn_div_exact_ws
_ccn_divmod_ws
_ccn_invmod_ws
_ccn_mul_lo
_ccn_random_bits_fips
_ccn_seti
_ccn_write_uint_padded_ct
_ccn_zero
_ccnistkdf_ctr_cmac_fixed
_ccnistkdf_ctr_hmac_fixed
_ccofb_one_shot
_ccomac_one_shot
_ccpad_cts1_encrypt
_ccpad_cts2_encrypt
_ccpad_cts3_encrypt
_ccpbkdf2_hmac
_ccpolyzp_po2cyc_divide_and_round_q_last_ws
_ccpolyzp_po2cyc_init_zero
_ccpolyzp_po2cyc_random_ternary_ws
_ccprime_rabin_miller_ws
_ccrc2_ltc_setup
_ccrng_crypto_generate
_ccrng_rsafips_test_generate
_ccrng_uniform
_ccrsa_block_start
_ccrsa_crt_makekey_ws
_ccrsa_eme_pkcs1v15_encode
_ccrsa_emsa_pss_decode_canary_out_ws
_ccrsa_emsa_pss_encode
_ccrsa_encrypt_eme_pkcs1v15_ws
_ccrsa_encrypt_oaep_ws
_ccrsa_generate_fips186_key_trace
_ccrsa_generate_probable_prime_ws
_ccrsa_oaep_decode_parameter_ws
_ccrsa_oaep_encode_parameter_ws
_ccrsa_recover_priv
_ccrsa_sign_pss_blinded
_ccrsa_verify_pkcs1v15_internal_ws
_ccrsa_verify_pss_digest_ws
_ccsae_ctr_hmac_fixed
_ccsae_generate_confirmation_ws
_ccsae_generate_keyseed_ws
_ccsae_init
_ccsae_verify_commitment
_ccsae_verify_confirmation_ws
_ccscrypt
_ccsha3_final
_ccsha512_final
_ccshake128
_ccshake256
_ccshake_init
_ccsigma_clear_key
_ccsigma_export_key_share
_ccsiv_hmac_one_shot
_ccsiv_one_shot
_ccspake_mac_compute_internal
_ccspake_mac_verify_and_get_session_key
_ccspake_prover_init
_ccspake_prover_initialize
_ccspake_transcript_finish
_ccspake_verifier_init_ws
_ccspake_verifier_initialize
_ccsrp_ctx_init
_ccsrp_ctx_init_option
_ccsrp_ctx_init_with_size_option
_ccsrp_digest_ccn_ccn_ws
_ccsrp_generate_H_AMK_ws
_ccsrp_generate_M_ws
_ccsrp_generate_verifier
_ccsrp_generate_x
_ccss_encode_string_into_value_smaller_than_prime
_ccvrf_irtf_ed25519_derive_public_key_internal
_ccvrf_irtf_ed25519_derive_scalar_internal
_ccvrf_irtf_ed25519_hash_points
_ccvrf_irtf_ed25519_prove
_ccvrf_irtf_nonce_generation
_ccwrap_auth_decrypt_withiv
_ccxts_one_shot
_ccz_read_radix
_cczp_inv_default_ws
_cczp_mm_power_fast_ws
_done
_done
_ecb_from_cbc
_ecb_from_cbc
_ecb_from_cbc
_fipspost_post_integrity
_fipspost_post_rsa_sig
_generate
_generate
_init
_md2_final
_mfi_clear
_reseed
_update
_update
|
Expand for full list:
_PQCLEAN_KYBER_CLEAN_gen_matrix
_PQCLEAN_KYBER_CLEAN_kyber_shake256_prf
_PQCLEAN_KYBER_CLEAN_kyber_shake256_rkprf
_cc_ws_free
_ccaes_unwind_with_ecb
_ccansikdf_x963_iovec
_ccbfv_ciphertext_galois_key_switch_ws
_ccbfv_encrypt_zero_symmetric_helper_ws
_cccbc_clear_iv
_cccbc_one_shot_explicit
_ccccm_finalize_and_verify_tag
_ccccm_one_shot
_ccccm_one_shot_decrypt
_ccccm_one_shot_encrypt
_cccfb8_one_shot
_cccfb_one_shot
_ccchacha20_final
_ccckg_contributor_commit
_ccckg_contributor_finish
_ccckg_init
_ccckg_owner_finish
_cccmac_final_generate
_cccmac_generate_subkeys
_cccmac_one_shot_generate
_cccmac_one_shot_verify
_ccctr_one_shot
_cccurve25519_internal
_cccurve448_internal
_ccdes_cbc_cksum
_ccdh_pairwise_consistency_check_ws
_ccdigest
_ccdigest_final_64be
_ccdigest_final_64le
_ccdrbg_df_bc_derive_keys
_ccdrbg_df_derive_keys
_ccec_generate_blinding_keys
_ccec_rfc6637_kdf
_ccec_rfc6637_unwrap_key_ws
_ccec_rfc6637_wrap_core_ws
_ccec_sign_internal_ws
_ccecb_one_shot_explicit
_ccecdh_compute_shared_secret_ws
_ccecdh_pairwise_consistency_check_ws
_ccecies_decrypt_gcm
_ccecies_decrypt_gcm_composite
_ccecies_decrypt_gcm_decrypt
_ccecies_decrypt_gcm_from_shared_secret
_ccecies_decrypt_gcm_from_shared_secret_composite
_ccecies_encrypt_gcm
_ccecies_encrypt_gcm_encrypt
_ccecies_encrypt_gcm_from_shared_secret
_ccecies_encrypt_gcm_from_shared_secret_composite
_cced25519_double_scalar_mult_ws
_cced25519_hash_to_scalar_ws
_cced25519_make_pub_internal
_cced25519_sign_internal
_cced25519_sign_with_rng
_cced448_double_scalar_mult_ws
_cced448_make_pub
_cced448_scalar_mult_ws
_cced448_shake_to_scalar_ws
_cced448_sign_ws
_ccentropy_digest_get_seed
_ccentropy_list_get_seed
_ccgcm_one_shot
_ccgcm_one_shot_legacy
_ccgcm_set_iv_legacy
_cchkdf
_cchkdf_expand
_cchmac
_cchpke_extract_and_expand
_cchpke_initiator_seal
_cchpke_initiator_setup_deterministic
_cchpke_labeled_expand
_cchpke_labeled_extract
_cchpke_responder_open
_cchpke_responder_setup
_cclr_permute
_ccmgf
_ccmode_ccm_reset
_ccmode_ccm_set_iv
_ccmode_cfb8_init
_ccmode_cfb_init
_ccmode_gcm_reset
_ccmode_gcm_set_iv
_ccmode_siv_auth_finalize
_ccmode_siv_decrypt
_ccmode_siv_encrypt
_ccmode_siv_hmac_auth_finalize
_ccmode_siv_hmac_decrypt
_ccmode_siv_hmac_encrypt
_ccmode_siv_hmac_temp_key_gen
_ccn_div_exact_ws
_ccn_divmod_ws
_ccn_invmod_ws
_ccn_mul_lo
_ccn_random_bits_fips
_ccn_seti
_ccn_write_uint_padded_ct
_ccn_zero
_ccnistkdf_ctr_cmac_fixed
_ccnistkdf_ctr_hmac_fixed
_ccofb_one_shot
_ccomac_one_shot
_ccpad_cts1_encrypt
_ccpad_cts2_encrypt
_ccpad_cts3_encrypt
_ccpbkdf2_hmac
_ccpolyzp_po2cyc_divide_and_round_q_last_ws
_ccpolyzp_po2cyc_init_zero
_ccpolyzp_po2cyc_random_ternary_ws
_ccprime_rabin_miller_ws
_ccrc2_ltc_setup
_ccrng_crypto_generate
_ccrng_rsafips_test_generate
_ccrng_uniform
_ccrsa_block_start
_ccrsa_crt_makekey_ws
_ccrsa_eme_pkcs1v15_decode_safe_ws
_ccrsa_eme_pkcs1v15_encode
_ccrsa_emsa_pss_decode_canary_out_ws
_ccrsa_emsa_pss_encode
_ccrsa_encrypt_eme_pkcs1v15_ws
_ccrsa_encrypt_oaep_ws
_ccrsa_generate_fips186_key_trace
_ccrsa_generate_probable_prime_ws
_ccrsa_oaep_decode_parameter_ws
_ccrsa_oaep_encode_parameter_ws
_ccrsa_recover_priv
_ccrsa_sign_pss_blinded
_ccrsa_verify_pkcs1v15_internal_ws
_ccrsa_verify_pss_digest_ws
_ccsae_ctr_hmac_fixed
_ccsae_generate_confirmation_ws
_ccsae_generate_keyseed_ws
_ccsae_init
_ccsae_verify_commitment
_ccsae_verify_confirmation_ws
_ccscrypt
_ccsha3_final
_ccsha512_final
_ccshake128
_ccshake256
_ccshake_init
_ccsigma_clear_key
_ccsigma_export_key_share
_ccsiv_hmac_one_shot
_ccsiv_one_shot
_ccspake_mac_compute_internal
_ccspake_mac_verify_and_get_session_key
_ccspake_prover_init
_ccspake_prover_initialize
_ccspake_transcript_finish
_ccspake_verifier_init_ws
_ccspake_verifier_initialize
_ccsrp_ctx_init
_ccsrp_ctx_init_option
_ccsrp_ctx_init_with_size_option
_ccsrp_digest_ccn_ccn_ws
_ccsrp_generate_H_AMK_ws
_ccsrp_generate_M_ws
_ccsrp_generate_verifier
_ccsrp_generate_x
_ccss_encode_string_into_value_smaller_than_prime
_ccvrf_irtf_ed25519_derive_public_key_internal
_ccvrf_irtf_ed25519_derive_scalar_internal
_ccvrf_irtf_ed25519_hash_points
_ccvrf_irtf_ed25519_prove
_ccvrf_irtf_nonce_generation
_ccwrap_auth_decrypt_withiv
_ccxts_one_shot
_ccz_read_radix
_cczp_inv_default_ws
_cczp_mm_power_fast_ws
_done
_done
_ecb_from_cbc
_ecb_from_cbc
_ecb_from_cbc
_fipspost_post_integrity
_fipspost_post_rsa_sig
_generate
_generate
_init
_md2_final
_mfi_clear
_reseed
_update
_update
| +|paramcount|0|0| +|`address`|1f1d1fbc4|1f1e37684| +|sig|undefined _cc_clear(void)|undefined _cc_clear(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _cc_clear Calling Diff + + +```diff +--- _cc_clear calling ++++ _cc_clear calling +@@ -118,0 +119 @@ ++_ccrsa_eme_pkcs1v15_decode_safe_ws +``` + + +## _cckyber_poly_compress + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|length,address,called| +|ratio|0.23| +|i_ratio|0.13| +|m_ratio|0.19| +|b_ratio|0.19| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_cckyber_poly_compress|_cckyber_poly_compress| +|fullname|_cckyber_poly_compress|_cckyber_poly_compress| +|refcount|2|2| +|`length`|108|16| +|`called`|_cc_abort
_cckyber_poly_compress_d4
_cckyber_poly_compress_d5|| +|calling|_PQCLEAN_KYBER_CLEAN_indcpa_enc_ws|_PQCLEAN_KYBER_CLEAN_indcpa_enc_ws| +|paramcount|0|0| +|`address`|1f1d55260|1f1e6ceb0| +|sig|undefined _cckyber_poly_compress(void)|undefined _cckyber_poly_compress(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _cckyber_poly_compress Called Diff + + +```diff +--- _cckyber_poly_compress called ++++ _cckyber_poly_compress called +@@ -1,3 +0,0 @@ +-_cc_abort +-_cckyber_poly_compress_d4 +-_cckyber_poly_compress_d5 +``` + + +## _cc_ws_alloc + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|refcount,address,calling| +|ratio|1.0| +|i_ratio|0.83| +|m_ratio|1.0| +|b_ratio|1.0| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_cc_ws_alloc|_cc_ws_alloc| +|fullname|_cc_ws_alloc|_cc_ws_alloc| +|`refcount`|317|319| +|length|72|72| +|called|_cc_try_abort_if|_cc_try_abort_if| +|`calling`|
Expand for full list:
_PQCLEAN_KYBER_CLEAN_crypto_kem_dec
_PQCLEAN_KYBER_CLEAN_indcpa_enc
_PQCLEAN_KYBER_CLEAN_indcpa_keypair
_ccbfv_ciphertext_apply_galois
_ccbfv_ciphertext_coeff_plaintext_mul
_ccbfv_ciphertext_eval_plaintext_mul
_ccbfv_ciphertext_plaintext_add
_ccbfv_dcrt_plaintext_encode
_ccbfv_decode_simd_int64
_ccbfv_decode_simd_uint64
_ccbfv_decrypt
_ccbfv_deserialize_ciphertext_coeff
_ccbfv_deserialize_ciphertext_eval
_ccbfv_deserialize_seeded_ciphertext_coeff
_ccbfv_deserialize_seeded_ciphertext_eval
_ccbfv_encrypt_symmetric
_ccbfv_galois_key_generate
_ccbfv_galois_key_load
_ccbfv_galois_key_save
_ccbfv_param_ctx_init
_ccbfv_relin_key_generate
_ccbfv_relin_key_load
_ccbfv_relin_key_save
_ccbfv_secret_key_generate
_ccbfv_secret_key_generate_from_seed
_ccbfv_serialize_ciphertext_coeff
_ccbfv_serialize_ciphertext_eval
_ccbfv_serialize_seeded_ciphertext_coeff
_ccbfv_serialize_seeded_ciphertext_eval
_ccckg_contributor_finish
_ccckg_owner_generate_share
_cccurve25519_internal
_cccurve448_internal
_ccder_decode_rsa_priv
_ccdh_compute_shared_secret
_ccdh_generate_key
_ccdh_import_priv
_ccdh_init_gp_from_bytes
_ccec_affinify
_ccec_blind
_ccec_compact_generate_key
_ccec_compact_generate_key_init
_ccec_compact_generate_key_step
_ccec_compact_import_pub
_ccec_compact_transform_key
_ccec_der_export_diversified_pub
_ccec_der_export_priv
_ccec_diversify_priv_twin
_ccec_diversify_pub
_ccec_diversify_pub_twin
_ccec_extract_rs
_ccec_full_add
_ccec_generate_blinding_keys
_ccec_generate_key_deterministic
_ccec_generate_key_fips
_ccec_generate_key_legacy
_ccec_generate_scalar_fips_extrabits
_ccec_generate_scalar_fips_retry
_ccec_import_affine_point
_ccec_is_compactable_pub
_ccec_make_pub_from_priv
_ccec_mult_blinded
_ccec_pairwise_consistency_check
_ccec_projectify
_ccec_rfc6637_unwrap_key
_ccec_rfc6637_wrap_key
_ccec_rfc6637_wrap_key_diversified
_ccec_sign
_ccec_sign_composite
_ccec_sign_composite_msg
_ccec_sign_msg
_ccec_twin_mult
_ccec_unblind
_ccec_validate_pub
_ccec_verify_composite_digest
_ccec_verify_digest
_ccec_verify_msg
_ccec_x963_import_priv
_ccec_x963_import_pub
_ccecdh_compute_shared_secret
_ccecdh_generate_key
_ccecies_decrypt_gcm_composite
_ccecies_encrypt_gcm_composite
_ccecies_import_eph_pub
_cced25519_verify_internal
_cced448_make_pub
_cced448_sign_internal
_cced448_verify_internal
_cch2c
_ccnistkdf_ctr_cmac
_ccnistkdf_ctr_hmac
_ccprime_rabin_miller
_ccrsa_decrypt_eme_pkcs1v15
_ccrsa_decrypt_oaep
_ccrsa_emsa_pss_decode
_ccrsa_encrypt_eme_pkcs1v15
_ccrsa_encrypt_oaep
_ccrsa_generate_fips186_key_trace
_ccrsa_generate_key_deterministic
_ccrsa_generate_key_internal
_ccrsa_init_pub
_ccrsa_make_priv
_ccrsa_oaep_decode_parameter
_ccrsa_oaep_encode_parameter
_ccrsa_priv_crypt
_ccrsa_pub_crypt
_ccrsa_recover_priv
_ccrsa_sign_pkcs1v15_blinded
_ccrsa_sign_pss_blinded
_ccrsa_verify_pkcs1v15_digest
_ccrsa_verify_pkcs1v15_internal
_ccrsa_verify_pss_digest
_ccrsa_verify_pss_msg
_ccrsabssa_blind_message
_ccrsabssa_sign_blinded_message
_ccrsabssa_unblind_signature
_ccsae_generate_commitment_finalize
_ccsae_generate_commitment_partial
_ccsae_generate_confirmation
_ccsae_generate_h2c_commit
_ccsae_generate_h2c_commit_finalize
_ccsae_generate_h2c_commit_init
_ccsae_generate_h2c_pt
_ccsae_get_keys
_ccsae_verify_commitment
_ccsae_verify_confirmation
_ccspake_generate_L
_ccspake_kex_generate
_ccspake_kex_process
_ccspake_reduce_w
_ccspake_verifier_init
_ccspake_verifier_initialize
_ccsrp_client_process_challenge
_ccsrp_client_start_authentication
_ccsrp_generate_verifier
_ccsrp_server_compute_session
_ccsrp_server_generate_public_key
_ccss_shamir_evaluate_poly_to_buffer
_ccss_shamir_share_bag_recover_secret
_ccss_shamir_share_generator_deserialize
_ccss_shamir_share_generator_init
_ccss_shamir_share_generator_init_with_secrets_less_than_prime
_ccz_expmod
_cczp_add
_cczp_init
_cczp_inv
_cczp_mod
_cczp_modn
_cczp_mul
_cczp_sub
_fipspost_post_drbg_ctr
_fipspost_post_drbg_hmac
_fipspost_post_ecdh
_fipspost_post_ecdsa
_fipspost_post_ffdh
_fipspost_post_rsa_enc_dec
_map_to_curve_sswu
|
Expand for full list:
_PQCLEAN_KYBER_CLEAN_crypto_kem_dec
_PQCLEAN_KYBER_CLEAN_indcpa_enc
_PQCLEAN_KYBER_CLEAN_indcpa_keypair
_ccbfv_ciphertext_apply_galois
_ccbfv_ciphertext_coeff_plaintext_mul
_ccbfv_ciphertext_eval_plaintext_mul
_ccbfv_ciphertext_plaintext_add
_ccbfv_dcrt_plaintext_encode
_ccbfv_decode_simd_int64
_ccbfv_decode_simd_uint64
_ccbfv_decrypt
_ccbfv_deserialize_ciphertext_coeff
_ccbfv_deserialize_ciphertext_eval
_ccbfv_deserialize_seeded_ciphertext_coeff
_ccbfv_deserialize_seeded_ciphertext_eval
_ccbfv_encrypt_symmetric
_ccbfv_galois_key_generate
_ccbfv_galois_key_load
_ccbfv_galois_key_save
_ccbfv_param_ctx_init
_ccbfv_relin_key_generate
_ccbfv_relin_key_load
_ccbfv_relin_key_save
_ccbfv_secret_key_generate
_ccbfv_secret_key_generate_from_seed
_ccbfv_serialize_ciphertext_coeff
_ccbfv_serialize_ciphertext_eval
_ccbfv_serialize_seeded_ciphertext_coeff
_ccbfv_serialize_seeded_ciphertext_eval
_ccckg_contributor_finish
_ccckg_owner_generate_share
_cccurve25519_internal
_cccurve448_internal
_ccder_decode_rsa_priv
_ccdh_compute_shared_secret
_ccdh_generate_key
_ccdh_import_priv
_ccdh_init_gp_from_bytes
_ccec_affinify
_ccec_blind
_ccec_compact_generate_key
_ccec_compact_generate_key_init
_ccec_compact_generate_key_step
_ccec_compact_import_pub
_ccec_compact_transform_key
_ccec_der_export_diversified_pub
_ccec_der_export_priv
_ccec_diversify_priv_twin
_ccec_diversify_pub
_ccec_diversify_pub_twin
_ccec_extract_rs
_ccec_full_add
_ccec_generate_blinding_keys
_ccec_generate_key_deterministic
_ccec_generate_key_fips
_ccec_generate_key_legacy
_ccec_generate_scalar_fips_extrabits
_ccec_generate_scalar_fips_retry
_ccec_import_affine_point
_ccec_is_compactable_pub
_ccec_make_pub_from_priv
_ccec_mult_blinded
_ccec_pairwise_consistency_check
_ccec_projectify
_ccec_rfc6637_unwrap_key
_ccec_rfc6637_wrap_key
_ccec_rfc6637_wrap_key_diversified
_ccec_sign
_ccec_sign_composite
_ccec_sign_composite_msg
_ccec_sign_msg
_ccec_twin_mult
_ccec_unblind
_ccec_validate_pub
_ccec_verify_composite_digest
_ccec_verify_digest
_ccec_verify_msg
_ccec_x963_import_priv
_ccec_x963_import_pub
_ccecdh_compute_shared_secret
_ccecdh_generate_key
_ccecies_decrypt_gcm_composite
_ccecies_encrypt_gcm_composite
_ccecies_import_eph_pub
_cced25519_verify_internal
_cced448_make_pub
_cced448_sign_internal
_cced448_verify_internal
_cch2c
_ccnistkdf_ctr_cmac
_ccnistkdf_ctr_hmac
_ccprime_rabin_miller
_ccrsa_decrypt_eme_pkcs1v15
_ccrsa_decrypt_oaep
_ccrsa_eme_pkcs1v15_decode
_ccrsa_eme_pkcs1v15_decode_safe
_ccrsa_emsa_pss_decode
_ccrsa_encrypt_eme_pkcs1v15
_ccrsa_encrypt_oaep
_ccrsa_generate_fips186_key_trace
_ccrsa_generate_key_deterministic
_ccrsa_generate_key_internal
_ccrsa_init_pub
_ccrsa_make_priv
_ccrsa_oaep_decode_parameter
_ccrsa_oaep_encode_parameter
_ccrsa_priv_crypt
_ccrsa_pub_crypt
_ccrsa_recover_priv
_ccrsa_sign_pkcs1v15_blinded
_ccrsa_sign_pss_blinded
_ccrsa_verify_pkcs1v15_digest
_ccrsa_verify_pkcs1v15_internal
_ccrsa_verify_pss_digest
_ccrsa_verify_pss_msg
_ccrsabssa_blind_message
_ccrsabssa_sign_blinded_message
_ccrsabssa_unblind_signature
_ccsae_generate_commitment_finalize
_ccsae_generate_commitment_partial
_ccsae_generate_confirmation
_ccsae_generate_h2c_commit
_ccsae_generate_h2c_commit_finalize
_ccsae_generate_h2c_commit_init
_ccsae_generate_h2c_pt
_ccsae_get_keys
_ccsae_verify_commitment
_ccsae_verify_confirmation
_ccspake_generate_L
_ccspake_kex_generate
_ccspake_kex_process
_ccspake_reduce_w
_ccspake_verifier_init
_ccspake_verifier_initialize
_ccsrp_client_process_challenge
_ccsrp_client_start_authentication
_ccsrp_generate_verifier
_ccsrp_server_compute_session
_ccsrp_server_generate_public_key
_ccss_shamir_evaluate_poly_to_buffer
_ccss_shamir_share_bag_recover_secret
_ccss_shamir_share_generator_deserialize
_ccss_shamir_share_generator_init
_ccss_shamir_share_generator_init_with_secrets_less_than_prime
_ccz_expmod
_cczp_add
_cczp_init
_cczp_inv
_cczp_mod
_cczp_modn
_cczp_mul
_cczp_sub
_fipspost_post_drbg_ctr
_fipspost_post_drbg_hmac
_fipspost_post_ecdh
_fipspost_post_ecdsa
_fipspost_post_ffdh
_fipspost_post_rsa_enc_dec
_map_to_curve_sswu
| +|paramcount|0|0| +|`address`|1f1d1cb18|1f1e345d8| +|sig|undefined _cc_ws_alloc(void)|undefined _cc_ws_alloc(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _cc_ws_alloc Calling Diff + + +```diff +--- _cc_ws_alloc calling ++++ _cc_ws_alloc calling +@@ -94,0 +95,2 @@ ++_ccrsa_eme_pkcs1v15_decode ++_ccrsa_eme_pkcs1v15_decode_safe +``` + + +## _cckyber_poly_compress_d4 + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|refcount,address,calling| +|ratio|1.0| +|i_ratio|0.94| +|m_ratio|1.0| +|b_ratio|1.0| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_cckyber_poly_compress_d4|_cckyber_poly_compress_d4| +|fullname|_cckyber_poly_compress_d4|_cckyber_poly_compress_d4| +|`refcount`|2|1| +|length|124|124| +|called||| +|`calling`|_cckyber_poly_compress|| +|paramcount|0|0| +|`address`|1f1d5d12c|1f1e74cc4| +|sig|undefined _cckyber_poly_compress_d4(void)|undefined _cckyber_poly_compress_d4(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _cckyber_poly_compress_d4 Calling Diff + + +```diff +--- _cckyber_poly_compress_d4 calling ++++ _cckyber_poly_compress_d4 calling +@@ -1 +0,0 @@ +-_cckyber_poly_compress +``` + + +## _cckyber_poly_decompress + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|length,address,called| +|ratio|0.23| +|i_ratio|0.13| +|m_ratio|0.19| +|b_ratio|0.19| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_cckyber_poly_decompress|_cckyber_poly_decompress| +|fullname|_cckyber_poly_decompress|_cckyber_poly_decompress| +|refcount|2|2| +|`length`|108|16| +|`called`|_cc_abort
_cckyber_poly_decompress_d4
_cckyber_poly_decompress_d5|| +|calling|_PQCLEAN_KYBER_CLEAN_indcpa_dec_ws|_PQCLEAN_KYBER_CLEAN_indcpa_dec_ws| +|paramcount|0|0| +|`address`|1f1d552cc|1f1e6cec0| +|sig|undefined _cckyber_poly_decompress(void)|undefined _cckyber_poly_decompress(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _cckyber_poly_decompress Called Diff + + +```diff +--- _cckyber_poly_decompress called ++++ _cckyber_poly_decompress called +@@ -1,3 +0,0 @@ +-_cc_abort +-_cckyber_poly_decompress_d4 +-_cckyber_poly_decompress_d5 +``` + + +## _ccdrbg_init + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|refcount,address,calling| +|ratio|1.0| +|i_ratio|0.86| +|m_ratio|1.0| +|b_ratio|1.0| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_ccdrbg_init|_ccdrbg_init| +|fullname|_ccdrbg_init|_ccdrbg_init| +|`refcount`|9|10| +|length|112|112| +|called|_cc_disable_dit|_cc_disable_dit| +|`calling`|_ccec_generate_key_legacy
_ccrng_drbg_init
_ccrng_process_init
_ccrng_test_init
_ccrsa_generate_key_deterministic
_fipspost_post_drbg_ctr
_fipspost_post_drbg_hmac|_ccec_generate_key_legacy
_ccrng_drbg_init
_ccrng_process_init
_ccrng_test_init
_ccrsa_eme_pkcs1v15_decode_safe_ws
_ccrsa_generate_key_deterministic
_fipspost_post_drbg_ctr
_fipspost_post_drbg_hmac| +|paramcount|0|0| +|`address`|1f1d2cd00|1f1e447d4| +|sig|undefined _ccdrbg_init(void)|undefined _ccdrbg_init(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _ccdrbg_init Calling Diff + + +```diff +--- _ccdrbg_init calling ++++ _ccdrbg_init calling +@@ -4,0 +5 @@ ++_ccrsa_eme_pkcs1v15_decode_safe_ws +``` + + +## _ccrng_drbg_init_withdrbg + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|refcount,address,calling| +|ratio|1.0| +|i_ratio|0.79| +|m_ratio|1.0| +|b_ratio|1.0| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_ccrng_drbg_init_withdrbg|_ccrng_drbg_init_withdrbg| +|fullname|_ccrng_drbg_init_withdrbg|_ccrng_drbg_init_withdrbg| +|`refcount`|5|6| +|length|112|112| +|called|_cc_disable_dit
_generate|_cc_disable_dit
_generate| +|`calling`|_ccec_generate_key_legacy
_ccrng_drbg_init
_ccrsa_generate_key_deterministic|_ccec_generate_key_legacy
_ccrng_drbg_init
_ccrsa_eme_pkcs1v15_decode_safe_ws
_ccrsa_generate_key_deterministic| +|paramcount|0|0| +|`address`|1f1d7d934|1f1e958f4| +|sig|undefined _ccrng_drbg_init_withdrbg(void)|undefined _ccrng_drbg_init_withdrbg(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _ccrng_drbg_init_withdrbg Calling Diff + + +```diff +--- _ccrng_drbg_init_withdrbg calling ++++ _ccrng_drbg_init_withdrbg calling +@@ -2,0 +3 @@ ++_ccrsa_eme_pkcs1v15_decode_safe_ws +``` + + +## _cc_ws_free + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|refcount,address,calling| +|ratio|1.0| +|i_ratio|0.76| +|m_ratio|1.0| +|b_ratio|1.0| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_cc_ws_free|_cc_ws_free| +|fullname|_cc_ws_free|_cc_ws_free| +|`refcount`|315|319| +|length|84|84| +|called|_cc_clear
_cc_try_abort_if
_free|_cc_clear
_cc_try_abort_if
_free| +|`calling`|
Expand for full list:
_PQCLEAN_KYBER_CLEAN_crypto_kem_dec
_PQCLEAN_KYBER_CLEAN_indcpa_enc
_PQCLEAN_KYBER_CLEAN_indcpa_keypair
_ccbfv_ciphertext_apply_galois
_ccbfv_ciphertext_coeff_plaintext_mul
_ccbfv_ciphertext_eval_plaintext_mul
_ccbfv_ciphertext_plaintext_add
_ccbfv_dcrt_plaintext_encode
_ccbfv_decode_simd_int64
_ccbfv_decode_simd_uint64
_ccbfv_decrypt
_ccbfv_deserialize_ciphertext_coeff
_ccbfv_deserialize_ciphertext_eval
_ccbfv_deserialize_seeded_ciphertext_coeff
_ccbfv_deserialize_seeded_ciphertext_eval
_ccbfv_encrypt_symmetric
_ccbfv_galois_key_generate
_ccbfv_galois_key_load
_ccbfv_galois_key_save
_ccbfv_param_ctx_init
_ccbfv_relin_key_generate
_ccbfv_relin_key_load
_ccbfv_relin_key_save
_ccbfv_secret_key_generate
_ccbfv_secret_key_generate_from_seed
_ccbfv_serialize_ciphertext_coeff
_ccbfv_serialize_ciphertext_eval
_ccbfv_serialize_seeded_ciphertext_coeff
_ccbfv_serialize_seeded_ciphertext_eval
_ccckg_contributor_finish
_ccckg_owner_generate_share
_cccurve25519_internal
_cccurve448_internal
_ccder_decode_rsa_priv
_ccdh_compute_shared_secret
_ccdh_generate_key
_ccdh_import_priv
_ccdh_init_gp_from_bytes
_ccec_affinify
_ccec_blind
_ccec_compact_generate_key
_ccec_compact_generate_key_init
_ccec_compact_generate_key_step
_ccec_compact_import_pub
_ccec_compact_transform_key
_ccec_der_export_diversified_pub
_ccec_der_export_priv
_ccec_diversify_priv_twin
_ccec_diversify_pub
_ccec_diversify_pub_twin
_ccec_extract_rs
_ccec_full_add
_ccec_generate_blinding_keys
_ccec_generate_key_deterministic
_ccec_generate_key_fips
_ccec_generate_key_legacy
_ccec_generate_scalar_fips_extrabits
_ccec_generate_scalar_fips_retry
_ccec_import_affine_point
_ccec_is_compactable_pub
_ccec_make_pub_from_priv
_ccec_mult_blinded
_ccec_pairwise_consistency_check
_ccec_projectify
_ccec_rfc6637_unwrap_key
_ccec_rfc6637_wrap_key
_ccec_rfc6637_wrap_key_diversified
_ccec_sign
_ccec_sign_composite
_ccec_sign_composite_msg
_ccec_sign_msg
_ccec_twin_mult
_ccec_unblind
_ccec_validate_pub
_ccec_verify_composite_digest
_ccec_verify_digest
_ccec_verify_msg
_ccec_x963_import_priv
_ccec_x963_import_pub
_ccecdh_compute_shared_secret
_ccecdh_generate_key
_ccecies_decrypt_gcm_composite
_ccecies_encrypt_gcm_composite
_ccecies_import_eph_pub
_cced25519_verify_internal
_cced448_make_pub
_cced448_sign_internal
_cced448_verify_internal
_cch2c
_ccnistkdf_ctr_cmac
_ccnistkdf_ctr_hmac
_ccprime_rabin_miller
_ccrsa_decrypt_eme_pkcs1v15
_ccrsa_decrypt_oaep
_ccrsa_emsa_pss_decode
_ccrsa_encrypt_eme_pkcs1v15
_ccrsa_encrypt_oaep
_ccrsa_generate_fips186_key_trace
_ccrsa_generate_key_deterministic
_ccrsa_generate_key_internal
_ccrsa_init_pub
_ccrsa_make_priv
_ccrsa_oaep_decode_parameter
_ccrsa_oaep_encode_parameter
_ccrsa_priv_crypt
_ccrsa_pub_crypt
_ccrsa_recover_priv
_ccrsa_sign_pkcs1v15_blinded
_ccrsa_sign_pss_blinded
_ccrsa_verify_pkcs1v15_digest
_ccrsa_verify_pkcs1v15_internal
_ccrsa_verify_pss_digest
_ccrsa_verify_pss_msg
_ccrsabssa_blind_message
_ccrsabssa_sign_blinded_message
_ccrsabssa_unblind_signature
_ccsae_generate_commitment_finalize
_ccsae_generate_commitment_partial
_ccsae_generate_confirmation
_ccsae_generate_h2c_commit
_ccsae_generate_h2c_commit_finalize
_ccsae_generate_h2c_commit_init
_ccsae_generate_h2c_pt
_ccsae_get_keys
_ccsae_verify_commitment
_ccsae_verify_confirmation
_ccspake_generate_L
_ccspake_kex_generate
_ccspake_kex_process
_ccspake_reduce_w
_ccspake_verifier_init
_ccspake_verifier_initialize
_ccsrp_client_process_challenge
_ccsrp_client_start_authentication
_ccsrp_generate_verifier
_ccsrp_server_compute_session
_ccsrp_server_generate_public_key
_ccss_shamir_evaluate_poly_to_buffer
_ccss_shamir_share_bag_recover_secret
_ccss_shamir_share_generator_deserialize
_ccss_shamir_share_generator_init
_ccss_shamir_share_generator_init_with_secrets_less_than_prime
_ccz_expmod
_cczp_add
_cczp_init
_cczp_inv
_cczp_mod
_cczp_modn
_cczp_mul
_cczp_sub
_fipspost_post_drbg_ctr
_fipspost_post_drbg_hmac
_fipspost_post_ecdh
_fipspost_post_ecdsa
_fipspost_post_ffdh
_fipspost_post_rsa_enc_dec
_map_to_curve_sswu
|
Expand for full list:
_PQCLEAN_KYBER_CLEAN_crypto_kem_dec
_PQCLEAN_KYBER_CLEAN_indcpa_enc
_PQCLEAN_KYBER_CLEAN_indcpa_keypair
_ccbfv_ciphertext_apply_galois
_ccbfv_ciphertext_coeff_plaintext_mul
_ccbfv_ciphertext_eval_plaintext_mul
_ccbfv_ciphertext_plaintext_add
_ccbfv_dcrt_plaintext_encode
_ccbfv_decode_simd_int64
_ccbfv_decode_simd_uint64
_ccbfv_decrypt
_ccbfv_deserialize_ciphertext_coeff
_ccbfv_deserialize_ciphertext_eval
_ccbfv_deserialize_seeded_ciphertext_coeff
_ccbfv_deserialize_seeded_ciphertext_eval
_ccbfv_encrypt_symmetric
_ccbfv_galois_key_generate
_ccbfv_galois_key_load
_ccbfv_galois_key_save
_ccbfv_param_ctx_init
_ccbfv_relin_key_generate
_ccbfv_relin_key_load
_ccbfv_relin_key_save
_ccbfv_secret_key_generate
_ccbfv_secret_key_generate_from_seed
_ccbfv_serialize_ciphertext_coeff
_ccbfv_serialize_ciphertext_eval
_ccbfv_serialize_seeded_ciphertext_coeff
_ccbfv_serialize_seeded_ciphertext_eval
_ccckg_contributor_finish
_ccckg_owner_generate_share
_cccurve25519_internal
_cccurve448_internal
_ccder_decode_rsa_priv
_ccdh_compute_shared_secret
_ccdh_generate_key
_ccdh_import_priv
_ccdh_init_gp_from_bytes
_ccec_affinify
_ccec_blind
_ccec_compact_generate_key
_ccec_compact_generate_key_init
_ccec_compact_generate_key_step
_ccec_compact_import_pub
_ccec_compact_transform_key
_ccec_der_export_diversified_pub
_ccec_der_export_priv
_ccec_diversify_priv_twin
_ccec_diversify_pub
_ccec_diversify_pub_twin
_ccec_extract_rs
_ccec_full_add
_ccec_generate_blinding_keys
_ccec_generate_key_deterministic
_ccec_generate_key_fips
_ccec_generate_key_legacy
_ccec_generate_scalar_fips_extrabits
_ccec_generate_scalar_fips_retry
_ccec_import_affine_point
_ccec_is_compactable_pub
_ccec_make_pub_from_priv
_ccec_mult_blinded
_ccec_pairwise_consistency_check
_ccec_projectify
_ccec_rfc6637_unwrap_key
_ccec_rfc6637_wrap_key
_ccec_rfc6637_wrap_key_diversified
_ccec_sign
_ccec_sign_composite
_ccec_sign_composite_msg
_ccec_sign_msg
_ccec_twin_mult
_ccec_unblind
_ccec_validate_pub
_ccec_verify_composite_digest
_ccec_verify_digest
_ccec_verify_msg
_ccec_x963_import_priv
_ccec_x963_import_pub
_ccecdh_compute_shared_secret
_ccecdh_generate_key
_ccecies_decrypt_gcm_composite
_ccecies_encrypt_gcm_composite
_ccecies_import_eph_pub
_cced25519_verify_internal
_cced448_make_pub
_cced448_sign_internal
_cced448_verify_internal
_cch2c
_ccnistkdf_ctr_cmac
_ccnistkdf_ctr_hmac
_ccprime_rabin_miller
_ccrsa_decrypt_eme_pkcs1v15
_ccrsa_decrypt_oaep
_ccrsa_eme_pkcs1v15_decode
_ccrsa_eme_pkcs1v15_decode_safe
_ccrsa_emsa_pss_decode
_ccrsa_encrypt_eme_pkcs1v15
_ccrsa_encrypt_oaep
_ccrsa_generate_fips186_key_trace
_ccrsa_generate_key_deterministic
_ccrsa_generate_key_internal
_ccrsa_init_pub
_ccrsa_make_priv
_ccrsa_oaep_decode_parameter
_ccrsa_oaep_encode_parameter
_ccrsa_priv_crypt
_ccrsa_pub_crypt
_ccrsa_recover_priv
_ccrsa_sign_pkcs1v15_blinded
_ccrsa_sign_pss_blinded
_ccrsa_verify_pkcs1v15_digest
_ccrsa_verify_pkcs1v15_internal
_ccrsa_verify_pss_digest
_ccrsa_verify_pss_msg
_ccrsabssa_blind_message
_ccrsabssa_sign_blinded_message
_ccrsabssa_unblind_signature
_ccsae_generate_commitment_finalize
_ccsae_generate_commitment_partial
_ccsae_generate_confirmation
_ccsae_generate_h2c_commit
_ccsae_generate_h2c_commit_finalize
_ccsae_generate_h2c_commit_init
_ccsae_generate_h2c_pt
_ccsae_get_keys
_ccsae_verify_commitment
_ccsae_verify_confirmation
_ccspake_generate_L
_ccspake_kex_generate
_ccspake_kex_process
_ccspake_reduce_w
_ccspake_verifier_init
_ccspake_verifier_initialize
_ccsrp_client_process_challenge
_ccsrp_client_start_authentication
_ccsrp_generate_verifier
_ccsrp_server_compute_session
_ccsrp_server_generate_public_key
_ccss_shamir_evaluate_poly_to_buffer
_ccss_shamir_share_bag_recover_secret
_ccss_shamir_share_generator_deserialize
_ccss_shamir_share_generator_init
_ccss_shamir_share_generator_init_with_secrets_less_than_prime
_ccz_expmod
_cczp_add
_cczp_init
_cczp_inv
_cczp_mod
_cczp_modn
_cczp_mul
_cczp_sub
_fipspost_post_drbg_ctr
_fipspost_post_drbg_hmac
_fipspost_post_ecdh
_fipspost_post_ecdsa
_fipspost_post_ffdh
_fipspost_post_rsa_enc_dec
_map_to_curve_sswu
| +|paramcount|0|0| +|`address`|1f1d2923c|1f1e40cfc| +|sig|undefined _cc_ws_free(void)|undefined _cc_ws_free(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _cc_ws_free Calling Diff + + +```diff +--- _cc_ws_free calling ++++ _cc_ws_free calling +@@ -94,0 +95,2 @@ ++_ccrsa_eme_pkcs1v15_decode ++_ccrsa_eme_pkcs1v15_decode_safe +``` + + +## _ccdrbg_factory_nisthmac + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|refcount,address,calling| +|ratio|1.0| +|i_ratio|0.67| +|m_ratio|1.0| +|b_ratio|1.0| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_ccdrbg_factory_nisthmac|_ccdrbg_factory_nisthmac| +|fullname|_ccdrbg_factory_nisthmac|_ccdrbg_factory_nisthmac| +|`refcount`|4|5| +|length|172|172| +|called|_cc_disable_dit
_done
_generate
_init
_must_reseed
_reseed|_cc_disable_dit
_done
_generate
_init
_must_reseed
_reseed| +|`calling`|_ccec_generate_key_legacy
_fipspost_post_drbg_hmac|_ccec_generate_key_legacy
_ccrsa_eme_pkcs1v15_decode_safe_ws
_fipspost_post_drbg_hmac| +|paramcount|0|0| +|`address`|1f1d92480|1f1eaa440| +|sig|undefined _ccdrbg_factory_nisthmac(void)|undefined _ccdrbg_factory_nisthmac(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _ccdrbg_factory_nisthmac Calling Diff + + +```diff +--- _ccdrbg_factory_nisthmac calling ++++ _ccdrbg_factory_nisthmac calling +@@ -1,0 +2 @@ ++_ccrsa_eme_pkcs1v15_decode_safe_ws +``` + + +## _ccsha256_di + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|refcount,address,calling| +|ratio|1.0| +|i_ratio|0.33| +|m_ratio|1.0| +|b_ratio|1.0| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_ccsha256_di|_ccsha256_di| +|fullname|_ccsha256_di|_ccsha256_di| +|`refcount`|21|24| +|length|12|12| +|called||| +|`calling`|
Expand for full list:
_ccaes_siv_hmac_sha256_decrypt_mode
_ccaes_siv_hmac_sha256_encrypt_mode
_ccec_generate_key_legacy
_cchpke_kdf_hkdf_sha256_hash
_ccrng_pbkdf2_prng_init
_ccsae_init_p256_sha256
_ccscrypt
_fipspost_get_hmac
_fipspost_post_drbg_hmac
_fipspost_post_hkdf
_fipspost_post_hmac
_fipspost_post_kdf_ctr
_fipspost_post_pbkdf
_fipspost_post_rsa_enc_dec
_fipspost_post_rsa_oaep_decrypt_ws
_fipspost_post_rsa_sig
_mfi_info_init
|
Expand for full list:
_ccaes_siv_hmac_sha256_decrypt_mode
_ccaes_siv_hmac_sha256_encrypt_mode
_ccec_generate_key_legacy
_cchpke_kdf_hkdf_sha256_hash
_ccrng_pbkdf2_prng_init
_ccrsa_eme_pkcs1v15_decode_safe_ws
_ccsae_init_p256_sha256
_ccscrypt
_fipspost_get_hmac
_fipspost_post_drbg_hmac
_fipspost_post_hkdf
_fipspost_post_hmac
_fipspost_post_kdf_ctr
_fipspost_post_pbkdf
_fipspost_post_rsa_enc_dec
_fipspost_post_rsa_oaep_decrypt_ws
_fipspost_post_rsa_sig
_mfi_info_init
| +|paramcount|0|0| +|`address`|1f1d6f59c|1f1e8754c| +|sig|undefined _ccsha256_di(void)|undefined _ccsha256_di(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _ccsha256_di Calling Diff + + +```diff +--- _ccsha256_di calling ++++ _ccsha256_di calling +@@ -5,0 +6 @@ ++_ccrsa_eme_pkcs1v15_decode_safe_ws +``` + + +## _CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|refcount,address,calling| +|ratio|1.0| +|i_ratio|1.0| +|m_ratio|1.0| +|b_ratio|1.0| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N|_CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N| +|fullname|_CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N|_CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N| +|`refcount`|3|2| +|length|24|24| +|called||| +|`calling`|_ccbfv_param_ctx_init|_CCBFV_DECRYPT_CTX_INIT_WORKSPACE_N| +|paramcount|0|0| +|`address`|1f1d5b894|1f1e7342c| +|sig|undefined _CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N(void)|undefined _CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N Calling Diff + + +```diff +--- _CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N calling ++++ _CCPOLYZP_PO2CYC_BASE_CONVERT_INIT_WORKSPACE_N calling +@@ -1 +1 @@ +-_ccbfv_param_ctx_init ++_CCBFV_DECRYPT_CTX_INIT_WORKSPACE_N +``` + + +## _cckyber_poly_decompress_d4 + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|refcount,address,calling| +|ratio|1.0| +|i_ratio|0.94| +|m_ratio|1.0| +|b_ratio|1.0| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_cckyber_poly_decompress_d4|_cckyber_poly_decompress_d4| +|fullname|_cckyber_poly_decompress_d4|_cckyber_poly_decompress_d4| +|`refcount`|2|1| +|length|72|72| +|called||| +|`calling`|_cckyber_poly_decompress|| +|paramcount|0|0| +|`address`|1f1d5d61c|1f1e751b4| +|sig|undefined _cckyber_poly_decompress_d4(void)|undefined _cckyber_poly_decompress_d4(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _cckyber_poly_decompress_d4 Calling Diff + + +```diff +--- _cckyber_poly_decompress_d4 calling ++++ _cckyber_poly_decompress_d4 calling +@@ -1 +0,0 @@ +-_cckyber_poly_decompress +``` + + +## _AccelerateCrypto_SHA512_compress_hwassist + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|refcount,address,calling| +|ratio|1.0| +|i_ratio|0.99| +|m_ratio|1.0| +|b_ratio|1.0| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_AccelerateCrypto_SHA512_compress_hwassist|_AccelerateCrypto_SHA512_compress_hwassist| +|fullname|_AccelerateCrypto_SHA512_compress_hwassist|_AccelerateCrypto_SHA512_compress_hwassist| +|`refcount`|1|4| +|length|2164|2164| +|called||| +|`calling`||_ccsha384_vng_arm_compress
_ccsha512_256_vng_arm_compress
_ccsha512_vng_arm_compress| +|paramcount|0|0| +|`address`|1f1d7e680|1f1e96640| +|sig|undefined _AccelerateCrypto_SHA512_compress_hwassist(void)|undefined _AccelerateCrypto_SHA512_compress_hwassist(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _AccelerateCrypto_SHA512_compress_hwassist Calling Diff + + +```diff +--- _AccelerateCrypto_SHA512_compress_hwassist calling ++++ _AccelerateCrypto_SHA512_compress_hwassist calling +@@ -0,0 +1,3 @@ ++_ccsha384_vng_arm_compress ++_ccsha512_256_vng_arm_compress ++_ccsha512_vng_arm_compress +``` + + +## _cc_disable_dit + +### Match Info + + + +|Key|libcorecrypto.dylib-14.2.1 - libcorecrypto.dylib-14.3| +| :---: | :---: | +|diff_type|refcount,address,calling| +|ratio|1.0| +|i_ratio|0.75| +|m_ratio|1.0| +|b_ratio|1.0| +|match_types|SymbolsHash| + +### Function Meta Diff + + + +|Key|libcorecrypto.dylib-14.2.1|libcorecrypto.dylib-14.3| +| :---: | :---: | :---: | +|name|_cc_disable_dit|_cc_disable_dit| +|fullname|_cc_disable_dit|_cc_disable_dit| +|`refcount`|613|614| +|length|32|32| +|called||| +|`calling`|
Expand for full list:
_cc_atfork_child
_cc_atfork_parent
_cc_atfork_prepare
_cc_cmp_safe
_ccaes_unwind
_ccansikdf_x963
_ccapsic_client_check_intersect_response
_ccapsic_client_generate_match_response
_ccapsic_client_init
_ccapsic_server_determine_intersection
_ccapsic_server_encode_element
_ccapsic_server_init
_ccbfv_bytes_to_coeffs
_ccbfv_ciphertext_apply_galois
_ccbfv_ciphertext_coeff_compose
_ccbfv_ciphertext_coeff_dcrt_plaintext_mul
_ccbfv_ciphertext_coeff_decompose
_ccbfv_ciphertext_coeff_decompose_nptexts
_ccbfv_ciphertext_coeff_plaintext_mul
_ccbfv_ciphertext_eval_dcrt_plaintext_mul
_ccbfv_ciphertext_eval_plaintext_mul
_ccbfv_ciphertext_fresh_npolys
_ccbfv_ciphertext_fwd_ntt
_ccbfv_ciphertext_galois_elt_rotate_rows_left
_ccbfv_ciphertext_galois_elt_rotate_rows_right
_ccbfv_ciphertext_galois_elt_swap_columns
_ccbfv_ciphertext_inv_ntt
_ccbfv_ciphertext_plaintext_add
_ccbfv_coeffs_to_bytes
_ccbfv_dcrt_plaintext_encode
_ccbfv_decode_poly_uint64
_ccbfv_decode_simd_int64
_ccbfv_decode_simd_uint64
_ccbfv_decrypt
_ccbfv_deserialize_ciphertext_coeff
_ccbfv_deserialize_ciphertext_eval
_ccbfv_deserialize_seeded_ciphertext_coeff
_ccbfv_deserialize_seeded_ciphertext_eval
_ccbfv_encode_poly_uint64
_ccbfv_encode_simd_int64
_ccbfv_encode_simd_uint64
_ccbfv_encrypt_symmetric
_ccbfv_encryption_params_coefficient_moduli
_ccbfv_encryption_params_coefficient_nmoduli
_ccbfv_encryption_params_plaintext_modulus
_ccbfv_encryption_params_polynomial_degree
_ccbfv_galois_key_generate
_ccbfv_galois_key_load
_ccbfv_galois_key_save
_ccbfv_param_ctx_coefficient_moduli
_ccbfv_param_ctx_init
_ccbfv_param_ctx_key_ctx_poly_nbytes
_ccbfv_param_ctx_plaintext_modulus_inverse
_ccbfv_param_ctx_supports_simd_encoding
_ccbfv_relin_key_generate
_ccbfv_relin_key_load
_ccbfv_relin_key_save
_ccbfv_secret_key_generate
_ccbfv_secret_key_generate_from_seed
_ccbfv_serialize_ciphertext_coeff
_ccbfv_serialize_ciphertext_coeff_max_nskip_lsbs
_ccbfv_serialize_ciphertext_coeff_nbytes
_ccbfv_serialize_ciphertext_eval
_ccbfv_serialize_ciphertext_eval_nbytes
_ccbfv_serialize_seeded_ciphertext_coeff
_ccbfv_serialize_seeded_ciphertext_coeff_nbytes
_ccbfv_serialize_seeded_ciphertext_eval
_ccbfv_serialize_seeded_ciphertext_eval_nbytes
_cccbc_block_size
_cccbc_clear_iv
_cccbc_context_size
_cccbc_copy_iv
_cccbc_init
_cccbc_one_shot
_cccbc_one_shot_explicit
_cccbc_set_iv
_cccbc_update
_ccccm_aad
_ccccm_block_size
_ccccm_cbcmac
_ccccm_context_size
_ccccm_decrypt
_ccccm_encrypt
_ccccm_finalize
_ccccm_finalize_and_generate_tag
_ccccm_finalize_and_verify_tag
_ccccm_init
_ccccm_one_shot
_ccccm_one_shot_decrypt
_ccccm_one_shot_encrypt
_ccccm_reset
_ccccm_set_iv
_ccccm_update
_cccfb8_block_size
_cccfb8_context_size
_cccfb8_init
_cccfb8_one_shot
_cccfb8_update
_cccfb_block_size
_cccfb_context_size
_cccfb_init
_cccfb_one_shot
_cccfb_update
_ccchacha20
_ccchacha20_final
_ccchacha20_init
_ccchacha20_reset
_ccchacha20_setcounter
_ccchacha20_setnonce
_ccchacha20_update
_ccchacha20poly1305_aad
_ccchacha20poly1305_decrypt
_ccchacha20poly1305_decrypt_oneshot
_ccchacha20poly1305_encrypt
_ccchacha20poly1305_encrypt_oneshot
_ccchacha20poly1305_finalize
_ccchacha20poly1305_incnonce
_ccchacha20poly1305_init
_ccchacha20poly1305_reset
_ccchacha20poly1305_setnonce
_ccchacha20poly1305_verify
_ccckg_contributor_commit
_ccckg_contributor_finish
_ccckg_init
_ccckg_owner_finish
_ccckg_owner_generate_share
_cccmac_final_generate
_cccmac_final_verify
_cccmac_init
_cccmac_one_shot_generate
_cccmac_one_shot_verify
_cccmac_update
_ccctr_block_size
_ccctr_context_size
_ccctr_init
_ccctr_one_shot
_ccctr_update
_cccurve25519
_cccurve25519_make_key_pair
_cccurve25519_make_priv
_cccurve25519_make_pub
_cccurve25519_make_pub_with_rng
_cccurve25519_with_rng
_cccurve448
_cccurve448_make_key_pair
_cccurve448_make_priv
_cccurve448_make_pub
_ccder_blob_decode_eckey
_ccder_blob_encode_eckey
_ccder_decode_eckey
_ccder_decode_rsa_priv
_ccder_encode_eckey
_ccder_encode_rsa_priv
_ccdes_cbc_cksum
_ccdes_key_is_weak
_ccdes_key_set_odd_parity
_ccdh_compute_shared_secret
_ccdh_export_pub
_ccdh_generate_key
_ccdh_gp_size
_ccdh_import_full
_ccdh_import_priv
_ccdh_import_pub
_ccdh_init_gp_from_bytes
_ccdigest
_ccdigest_init
_ccdigest_oid_lookup
_ccdigest_update
_ccdrbg_df_bc_init
_ccdrbg_factory_nistctr
_ccdrbg_factory_nisthmac
_ccdrbg_generate
_ccdrbg_init
_ccdrbg_must_reseed
_ccdrbg_reseed
_ccec_affinify
_ccec_blind
_ccec_compact_export
_ccec_compact_export_pub
_ccec_compact_generate_key
_ccec_compact_generate_key_init
_ccec_compact_generate_key_step
_ccec_compact_import_priv
_ccec_compact_import_priv_size
_ccec_compact_import_pub
_ccec_compact_import_pub_size
_ccec_compact_transform_key
_ccec_compressed_x962_export_pub
_ccec_compressed_x962_export_pub_size
_ccec_compressed_x962_import_pub
_ccec_compute_key
_ccec_curve_for_length_lookup
_ccec_der_export_diversified_pub
_ccec_der_export_diversified_pub_size
_ccec_der_export_priv
_ccec_der_export_priv_size
_ccec_der_import_diversified_pub
_ccec_der_import_priv
_ccec_der_import_priv_keytype
_ccec_diversify_min_entropy_len
_ccec_diversify_priv_twin
_ccec_diversify_pub
_ccec_diversify_pub_twin
_ccec_export_affine_point
_ccec_export_affine_point_size
_ccec_export_pub
_ccec_extract_rs
_ccec_full_add
_ccec_generate_blinding_keys
_ccec_generate_key
_ccec_generate_key_deterministic
_ccec_generate_key_fips
_ccec_generate_key_legacy
_ccec_generate_scalar_fips_retry
_ccec_get_cp
_ccec_get_fullkey_components
_ccec_get_pubkey_components
_ccec_import_affine_point
_ccec_import_pub
_ccec_is_compactable_pub
_ccec_keysize_is_supported
_ccec_make_priv
_ccec_make_pub
_ccec_mult_blinded
_ccec_pairwise_consistency_check
_ccec_print_full_key
_ccec_print_public_key
_ccec_projectify
_ccec_raw_import_priv_only
_ccec_raw_import_pub
_ccec_rfc6637_unwrap_key
_ccec_rfc6637_wrap_key
_ccec_rfc6637_wrap_key_diversified
_ccec_rfc6637_wrap_key_size
_ccec_sign
_ccec_sign_composite
_ccec_sign_composite_msg
_ccec_sign_msg
_ccec_signature_r_s_size
_ccec_unblind
_ccec_validate_pub
_ccec_verify
_ccec_verify_composite
_ccec_verify_composite_digest
_ccec_verify_composite_msg
_ccec_verify_digest
_ccec_verify_msg
_ccec_x963_export
_ccec_x963_import_priv
_ccec_x963_import_priv_size
_ccec_x963_import_pub
_ccec_x963_import_pub_size
_ccecb_block_size
_ccecb_context_size
_ccecb_init
_ccecb_one_shot
_ccecb_one_shot_explicit
_ccecb_update
_ccecdh_compute_shared_secret
_ccecdh_generate_key
_ccecies_decrypt_gcm
_ccecies_decrypt_gcm_composite
_ccecies_decrypt_gcm_from_shared_secret
_ccecies_decrypt_gcm_plaintext_size
_ccecies_decrypt_gcm_plaintext_size_cp
_ccecies_decrypt_gcm_setup
_ccecies_encrypt_gcm
_ccecies_encrypt_gcm_ciphertext_size
_ccecies_encrypt_gcm_composite
_ccecies_encrypt_gcm_from_shared_secret
_ccecies_encrypt_gcm_setup
_ccecies_import_eph_pub
_ccecies_pub_key_size
_ccecies_pub_key_size_cp
_cced25519_make_key_pair
_cced25519_make_pub
_cced25519_make_pub_with_rng
_cced25519_sign
_cced25519_sign_with_rng
_cced25519_verify
_cced448_make_key_pair
_cced448_make_pub
_cced448_sign
_cced448_verify
_ccentropy_add_entropy
_ccentropy_digest_init
_ccentropy_get_seed
_ccentropy_list_init
_ccentropy_lock_init
_ccentropy_reset
_ccentropy_rng_init
_ccgcm_aad
_ccgcm_block_size
_ccgcm_context_size
_ccgcm_finalize
_ccgcm_gmac
_ccgcm_inc_iv
_ccgcm_init
_ccgcm_init_with_iv
_ccgcm_one_shot
_ccgcm_one_shot_legacy
_ccgcm_reset
_ccgcm_set_iv
_ccgcm_set_iv_legacy
_ccgcm_update
_cch2c
_cch2c_name
_cchkdf
_cchkdf_expand
_cchkdf_extract
_cchmac
_cchmac_final
_cchmac_init
_cchmac_update
_cchpke_initiator_encrypt
_cchpke_initiator_export
_cchpke_initiator_seal
_cchpke_initiator_setup
_cchpke_kem_generate_key_pair
_cchpke_responder_decrypt
_cchpke_responder_export
_cchpke_responder_open
_cchpke_responder_setup
_cckem_decapsulate
_cckem_encapsulate
_cckem_export_privkey
_cckem_full_ctx_init
_cckem_generate_key
_cckem_import_privkey
_cckem_pub_ctx_init
_cclr_aes_init
_cclr_block_nbytes
_cclr_decrypt_block
_cclr_encrypt_block
_ccmgf
_ccmode_factory_cbc_decrypt
_ccmode_factory_cbc_encrypt
_ccmode_factory_ccm_decrypt
_ccmode_factory_ccm_encrypt
_ccmode_factory_cfb8_decrypt
_ccmode_factory_cfb8_encrypt
_ccmode_factory_cfb_decrypt
_ccmode_factory_cfb_encrypt
_ccmode_factory_ctr_crypt
_ccmode_factory_gcm_decrypt
_ccmode_factory_gcm_encrypt
_ccmode_factory_ofb_crypt
_ccmode_factory_omac_decrypt
_ccmode_factory_omac_encrypt
_ccmode_factory_siv_decrypt
_ccmode_factory_siv_encrypt
_ccmode_factory_xts_decrypt
_ccmode_factory_xts_encrypt
_ccn_add
_ccn_add1
_ccn_bitlen
_ccn_cmp
_ccn_cmpn
_ccn_read_uint
_ccn_sub
_ccn_write_int
_ccn_write_int_size
_ccn_write_uint
_ccn_write_uint_padded_ct
_ccn_write_uint_size
_ccnistkdf_ctr_cmac
_ccnistkdf_ctr_cmac_fixed
_ccnistkdf_ctr_hmac
_ccnistkdf_ctr_hmac_fixed
_ccofb_block_size
_ccofb_context_size
_ccofb_init
_ccofb_one_shot
_ccofb_update
_ccoid_equal
_ccomac_block_size
_ccomac_context_size
_ccomac_init
_ccomac_one_shot
_ccomac_update
_ccpad_cts1_decrypt
_ccpad_cts1_encrypt
_ccpad_cts2_decrypt
_ccpad_cts2_encrypt
_ccpad_cts3_decrypt
_ccpad_cts3_encrypt
_ccpad_pkcs7_decode
_ccpad_pkcs7_decrypt
_ccpad_pkcs7_ecb_decrypt
_ccpad_pkcs7_ecb_encrypt
_ccpad_pkcs7_encrypt
_ccpad_xts_decrypt
_ccpad_xts_encrypt
_ccpbkdf2_hmac
_ccpoly1305
_ccpoly1305_final
_ccpoly1305_init
_ccpoly1305_update
_ccrng_drbg_done
_ccrng_drbg_init
_ccrng_drbg_init_withdrbg
_ccrng_drbg_reseed
_ccrng_ecfips_test_init
_ccrng_pbkdf2_prng_init
_ccrng_prng
_ccrng_rsafips_test_init
_ccrng_rsafips_test_set_next
_ccrng_sequence_init
_ccrng_system_done
_ccrng_system_init
_ccrng_trng
_ccrng_uniform
_ccrsa_decrypt_eme_pkcs1v15
_ccrsa_decrypt_oaep
_ccrsa_dump_full_key
_ccrsa_dump_public_key
_ccrsa_eme_pkcs1v15_decode
_ccrsa_eme_pkcs1v15_encode
_ccrsa_emsa_pkcs1v15_encode
_ccrsa_emsa_pkcs1v15_verify
_ccrsa_emsa_pss_decode
_ccrsa_emsa_pss_encode
_ccrsa_encrypt_eme_pkcs1v15
_ccrsa_encrypt_oaep
_ccrsa_export_priv
_ccrsa_export_priv_size
_ccrsa_export_pub
_ccrsa_generate_fips186_key
_ccrsa_generate_key
_ccrsa_generate_key_deterministic
_ccrsa_get_fullkey_components
_ccrsa_get_pubkey_components
_ccrsa_import_priv
_ccrsa_import_priv_n
_ccrsa_import_pub
_ccrsa_init_pub
_ccrsa_make_priv
_ccrsa_make_pub
_ccrsa_oaep_decode
_ccrsa_oaep_decode_parameter
_ccrsa_oaep_encode
_ccrsa_oaep_encode_parameter
_ccrsa_priv_crypt
_ccrsa_pub_crypt
_ccrsa_pubkeylength
_ccrsa_recover_priv
_ccrsa_sign_pkcs1v15
_ccrsa_sign_pkcs1v15_msg
_ccrsa_sign_pss
_ccrsa_sign_pss_msg
_ccrsa_verify_pkcs1v15
_ccrsa_verify_pkcs1v15_allowshortsigs
_ccrsa_verify_pkcs1v15_digest
_ccrsa_verify_pkcs1v15_msg
_ccrsa_verify_pss_digest
_ccrsa_verify_pss_msg
_ccrsabssa_blind_message
_ccrsabssa_sign_blinded_message
_ccrsabssa_unblind_signature
_ccsae_generate_commitment
_ccsae_generate_commitment_finalize
_ccsae_generate_commitment_init
_ccsae_generate_commitment_partial
_ccsae_generate_confirmation
_ccsae_generate_h2c_commit
_ccsae_generate_h2c_commit_finalize
_ccsae_generate_h2c_commit_init
_ccsae_generate_h2c_pt
_ccsae_get_keys
_ccsae_init
_ccsae_init_p256_sha256
_ccsae_init_p384_sha384
_ccsae_lexographic_order_key
_ccsae_verify_commitment
_ccsae_verify_confirmation
_ccscrypt
_ccscrypt_storage_size
_ccsigma_clear
_ccsigma_clear_key
_ccsigma_compute_mac
_ccsigma_derive_session_keys
_ccsigma_export_key_share
_ccsigma_import_peer_key_share
_ccsigma_import_peer_verification_key
_ccsigma_import_signing_key
_ccsigma_init
_ccsigma_kex_init_ctx
_ccsigma_kex_resp_ctx
_ccsigma_mfi_info
_ccsigma_mfi_nvm_info
_ccsigma_open
_ccsigma_peer_role
_ccsigma_seal
_ccsigma_set_signing_function
_ccsigma_sign
_ccsigma_verify
_ccsiv_aad
_ccsiv_block_size
_ccsiv_ciphertext_size
_ccsiv_context_size
_ccsiv_crypt
_ccsiv_hmac_aad
_ccsiv_hmac_block_size
_ccsiv_hmac_ciphertext_size
_ccsiv_hmac_context_size
_ccsiv_hmac_crypt
_ccsiv_hmac_init
_ccsiv_hmac_one_shot
_ccsiv_hmac_plaintext_size
_ccsiv_hmac_reset
_ccsiv_hmac_set_nonce
_ccsiv_init
_ccsiv_one_shot
_ccsiv_plaintext_size
_ccsiv_reset
_ccsiv_set_nonce
_ccspake_generate_L
_ccspake_kex_generate
_ccspake_kex_process
_ccspake_mac_compute
_ccspake_mac_verify_and_get_session_key
_ccspake_prover_init
_ccspake_prover_initialize
_ccspake_reduce_w
_ccspake_verifier_init
_ccspake_verifier_initialize
_ccsrp_client_process_challenge
_ccsrp_client_start_authentication
_ccsrp_client_verify_session
_ccsrp_generate_salt_and_verification
_ccsrp_generate_verifier
_ccsrp_server_compute_session
_ccsrp_server_generate_public_key
_ccsrp_server_start_authentication
_ccsrp_server_verify_session
_ccss_shamir_parameters_init
_ccss_shamir_parameters_maximum_secret_length
_ccss_shamir_share_bag_add_share
_ccss_shamir_share_bag_init
_ccss_shamir_share_bag_recover_secret
_ccss_shamir_share_export
_ccss_shamir_share_generator_deserialize
_ccss_shamir_share_generator_generate_share
_ccss_shamir_share_generator_init
_ccss_shamir_share_generator_init_with_secrets_less_than_prime
_ccss_shamir_share_generator_serialize
_ccss_shamir_share_import
_ccss_shamir_share_init
_ccss_shamir_share_sizeof_y
_ccvrf_derive_public_key
_ccvrf_factory_irtfdraft03
_ccvrf_factory_irtfdraft03_default
_ccvrf_proof_to_hash
_ccvrf_prove
_ccvrf_verify
_ccwrap_auth_decrypt
_ccwrap_auth_decrypt_withiv
_ccwrap_auth_encrypt
_ccwrap_auth_encrypt_withiv
_ccwrap_unwrapped_size
_ccwrap_wrapped_size
_ccxts_block_size
_ccxts_context_size
_ccxts_init
_ccxts_one_shot
_ccxts_set_tweak
_ccxts_update
_ccz_add
_ccz_addi
_ccz_bit
_ccz_bitlen
_ccz_cmp
_ccz_cmpi
_ccz_divmod
_ccz_expmod
_ccz_free
_ccz_init
_ccz_is_negative
_ccz_is_one
_ccz_is_prime
_ccz_is_zero
_ccz_lsl
_ccz_lsr
_ccz_mod
_ccz_mul
_ccz_muli
_ccz_mulmod
_ccz_neg
_ccz_random_bits
_ccz_read_radix
_ccz_read_uint
_ccz_set
_ccz_set_bit
_ccz_seti
_ccz_size
_ccz_sub
_ccz_subi
_ccz_trailing_zeros
_ccz_write_int
_ccz_write_int_size
_ccz_write_radix
_ccz_write_radix_size
_ccz_write_uint
_ccz_write_uint_size
_ccz_zero
_cczp_add
_cczp_inv
_cczp_mod
_cczp_mul
_cczp_sub
_csss_shamir_share_bag_can_recover_secret
_map_to_curve_sswu
|
Expand for full list:
_cc_atfork_child
_cc_atfork_parent
_cc_atfork_prepare
_cc_cmp_safe
_ccaes_unwind
_ccansikdf_x963
_ccapsic_client_check_intersect_response
_ccapsic_client_generate_match_response
_ccapsic_client_init
_ccapsic_server_determine_intersection
_ccapsic_server_encode_element
_ccapsic_server_init
_ccbfv_bytes_to_coeffs
_ccbfv_ciphertext_apply_galois
_ccbfv_ciphertext_coeff_compose
_ccbfv_ciphertext_coeff_dcrt_plaintext_mul
_ccbfv_ciphertext_coeff_decompose
_ccbfv_ciphertext_coeff_decompose_nptexts
_ccbfv_ciphertext_coeff_plaintext_mul
_ccbfv_ciphertext_eval_dcrt_plaintext_mul
_ccbfv_ciphertext_eval_plaintext_mul
_ccbfv_ciphertext_fresh_npolys
_ccbfv_ciphertext_fwd_ntt
_ccbfv_ciphertext_galois_elt_rotate_rows_left
_ccbfv_ciphertext_galois_elt_rotate_rows_right
_ccbfv_ciphertext_galois_elt_swap_columns
_ccbfv_ciphertext_inv_ntt
_ccbfv_ciphertext_plaintext_add
_ccbfv_coeffs_to_bytes
_ccbfv_dcrt_plaintext_encode
_ccbfv_decode_poly_uint64
_ccbfv_decode_simd_int64
_ccbfv_decode_simd_uint64
_ccbfv_decrypt
_ccbfv_deserialize_ciphertext_coeff
_ccbfv_deserialize_ciphertext_eval
_ccbfv_deserialize_seeded_ciphertext_coeff
_ccbfv_deserialize_seeded_ciphertext_eval
_ccbfv_encode_poly_uint64
_ccbfv_encode_simd_int64
_ccbfv_encode_simd_uint64
_ccbfv_encrypt_symmetric
_ccbfv_encryption_params_coefficient_moduli
_ccbfv_encryption_params_coefficient_nmoduli
_ccbfv_encryption_params_plaintext_modulus
_ccbfv_encryption_params_polynomial_degree
_ccbfv_galois_key_generate
_ccbfv_galois_key_load
_ccbfv_galois_key_save
_ccbfv_param_ctx_coefficient_moduli
_ccbfv_param_ctx_init
_ccbfv_param_ctx_key_ctx_poly_nbytes
_ccbfv_param_ctx_plaintext_modulus_inverse
_ccbfv_param_ctx_supports_simd_encoding
_ccbfv_relin_key_generate
_ccbfv_relin_key_load
_ccbfv_relin_key_save
_ccbfv_secret_key_generate
_ccbfv_secret_key_generate_from_seed
_ccbfv_serialize_ciphertext_coeff
_ccbfv_serialize_ciphertext_coeff_max_nskip_lsbs
_ccbfv_serialize_ciphertext_coeff_nbytes
_ccbfv_serialize_ciphertext_eval
_ccbfv_serialize_ciphertext_eval_nbytes
_ccbfv_serialize_seeded_ciphertext_coeff
_ccbfv_serialize_seeded_ciphertext_coeff_nbytes
_ccbfv_serialize_seeded_ciphertext_eval
_ccbfv_serialize_seeded_ciphertext_eval_nbytes
_cccbc_block_size
_cccbc_clear_iv
_cccbc_context_size
_cccbc_copy_iv
_cccbc_init
_cccbc_one_shot
_cccbc_one_shot_explicit
_cccbc_set_iv
_cccbc_update
_ccccm_aad
_ccccm_block_size
_ccccm_cbcmac
_ccccm_context_size
_ccccm_decrypt
_ccccm_encrypt
_ccccm_finalize
_ccccm_finalize_and_generate_tag
_ccccm_finalize_and_verify_tag
_ccccm_init
_ccccm_one_shot
_ccccm_one_shot_decrypt
_ccccm_one_shot_encrypt
_ccccm_reset
_ccccm_set_iv
_ccccm_update
_cccfb8_block_size
_cccfb8_context_size
_cccfb8_init
_cccfb8_one_shot
_cccfb8_update
_cccfb_block_size
_cccfb_context_size
_cccfb_init
_cccfb_one_shot
_cccfb_update
_ccchacha20
_ccchacha20_final
_ccchacha20_init
_ccchacha20_reset
_ccchacha20_setcounter
_ccchacha20_setnonce
_ccchacha20_update
_ccchacha20poly1305_aad
_ccchacha20poly1305_decrypt
_ccchacha20poly1305_decrypt_oneshot
_ccchacha20poly1305_encrypt
_ccchacha20poly1305_encrypt_oneshot
_ccchacha20poly1305_finalize
_ccchacha20poly1305_incnonce
_ccchacha20poly1305_init
_ccchacha20poly1305_reset
_ccchacha20poly1305_setnonce
_ccchacha20poly1305_verify
_ccckg_contributor_commit
_ccckg_contributor_finish
_ccckg_init
_ccckg_owner_finish
_ccckg_owner_generate_share
_cccmac_final_generate
_cccmac_final_verify
_cccmac_init
_cccmac_one_shot_generate
_cccmac_one_shot_verify
_cccmac_update
_ccctr_block_size
_ccctr_context_size
_ccctr_init
_ccctr_one_shot
_ccctr_update
_cccurve25519
_cccurve25519_make_key_pair
_cccurve25519_make_priv
_cccurve25519_make_pub
_cccurve25519_make_pub_with_rng
_cccurve25519_with_rng
_cccurve448
_cccurve448_make_key_pair
_cccurve448_make_priv
_cccurve448_make_pub
_ccder_blob_decode_eckey
_ccder_blob_encode_eckey
_ccder_decode_eckey
_ccder_decode_rsa_priv
_ccder_encode_eckey
_ccder_encode_rsa_priv
_ccdes_cbc_cksum
_ccdes_key_is_weak
_ccdes_key_set_odd_parity
_ccdh_compute_shared_secret
_ccdh_export_pub
_ccdh_generate_key
_ccdh_gp_size
_ccdh_import_full
_ccdh_import_priv
_ccdh_import_pub
_ccdh_init_gp_from_bytes
_ccdigest
_ccdigest_init
_ccdigest_oid_lookup
_ccdigest_update
_ccdrbg_df_bc_init
_ccdrbg_factory_nistctr
_ccdrbg_factory_nisthmac
_ccdrbg_generate
_ccdrbg_init
_ccdrbg_must_reseed
_ccdrbg_reseed
_ccec_affinify
_ccec_blind
_ccec_compact_export
_ccec_compact_export_pub
_ccec_compact_generate_key
_ccec_compact_generate_key_init
_ccec_compact_generate_key_step
_ccec_compact_import_priv
_ccec_compact_import_priv_size
_ccec_compact_import_pub
_ccec_compact_import_pub_size
_ccec_compact_transform_key
_ccec_compressed_x962_export_pub
_ccec_compressed_x962_export_pub_size
_ccec_compressed_x962_import_pub
_ccec_compute_key
_ccec_curve_for_length_lookup
_ccec_der_export_diversified_pub
_ccec_der_export_diversified_pub_size
_ccec_der_export_priv
_ccec_der_export_priv_size
_ccec_der_import_diversified_pub
_ccec_der_import_priv
_ccec_der_import_priv_keytype
_ccec_diversify_min_entropy_len
_ccec_diversify_priv_twin
_ccec_diversify_pub
_ccec_diversify_pub_twin
_ccec_export_affine_point
_ccec_export_affine_point_size
_ccec_export_pub
_ccec_extract_rs
_ccec_full_add
_ccec_generate_blinding_keys
_ccec_generate_key
_ccec_generate_key_deterministic
_ccec_generate_key_fips
_ccec_generate_key_legacy
_ccec_generate_scalar_fips_retry
_ccec_get_cp
_ccec_get_fullkey_components
_ccec_get_pubkey_components
_ccec_import_affine_point
_ccec_import_pub
_ccec_is_compactable_pub
_ccec_keysize_is_supported
_ccec_make_priv
_ccec_make_pub
_ccec_mult_blinded
_ccec_pairwise_consistency_check
_ccec_print_full_key
_ccec_print_public_key
_ccec_projectify
_ccec_raw_import_priv_only
_ccec_raw_import_pub
_ccec_rfc6637_unwrap_key
_ccec_rfc6637_wrap_key
_ccec_rfc6637_wrap_key_diversified
_ccec_rfc6637_wrap_key_size
_ccec_sign
_ccec_sign_composite
_ccec_sign_composite_msg
_ccec_sign_msg
_ccec_signature_r_s_size
_ccec_unblind
_ccec_validate_pub
_ccec_verify
_ccec_verify_composite
_ccec_verify_composite_digest
_ccec_verify_composite_msg
_ccec_verify_digest
_ccec_verify_msg
_ccec_x963_export
_ccec_x963_import_priv
_ccec_x963_import_priv_size
_ccec_x963_import_pub
_ccec_x963_import_pub_size
_ccecb_block_size
_ccecb_context_size
_ccecb_init
_ccecb_one_shot
_ccecb_one_shot_explicit
_ccecb_update
_ccecdh_compute_shared_secret
_ccecdh_generate_key
_ccecies_decrypt_gcm
_ccecies_decrypt_gcm_composite
_ccecies_decrypt_gcm_from_shared_secret
_ccecies_decrypt_gcm_plaintext_size
_ccecies_decrypt_gcm_plaintext_size_cp
_ccecies_decrypt_gcm_setup
_ccecies_encrypt_gcm
_ccecies_encrypt_gcm_ciphertext_size
_ccecies_encrypt_gcm_composite
_ccecies_encrypt_gcm_from_shared_secret
_ccecies_encrypt_gcm_setup
_ccecies_import_eph_pub
_ccecies_pub_key_size
_ccecies_pub_key_size_cp
_cced25519_make_key_pair
_cced25519_make_pub
_cced25519_make_pub_with_rng
_cced25519_sign
_cced25519_sign_with_rng
_cced25519_verify
_cced448_make_key_pair
_cced448_make_pub
_cced448_sign
_cced448_verify
_ccentropy_add_entropy
_ccentropy_digest_init
_ccentropy_get_seed
_ccentropy_list_init
_ccentropy_lock_init
_ccentropy_reset
_ccentropy_rng_init
_ccgcm_aad
_ccgcm_block_size
_ccgcm_context_size
_ccgcm_finalize
_ccgcm_gmac
_ccgcm_inc_iv
_ccgcm_init
_ccgcm_init_with_iv
_ccgcm_one_shot
_ccgcm_one_shot_legacy
_ccgcm_reset
_ccgcm_set_iv
_ccgcm_set_iv_legacy
_ccgcm_update
_cch2c
_cch2c_name
_cchkdf
_cchkdf_expand
_cchkdf_extract
_cchmac
_cchmac_final
_cchmac_init
_cchmac_update
_cchpke_initiator_encrypt
_cchpke_initiator_export
_cchpke_initiator_seal
_cchpke_initiator_setup
_cchpke_kem_generate_key_pair
_cchpke_responder_decrypt
_cchpke_responder_export
_cchpke_responder_open
_cchpke_responder_setup
_cckem_decapsulate
_cckem_encapsulate
_cckem_export_privkey
_cckem_full_ctx_init
_cckem_generate_key
_cckem_import_privkey
_cckem_pub_ctx_init
_cclr_aes_init
_cclr_block_nbytes
_cclr_decrypt_block
_cclr_encrypt_block
_ccmgf
_ccmode_factory_cbc_decrypt
_ccmode_factory_cbc_encrypt
_ccmode_factory_ccm_decrypt
_ccmode_factory_ccm_encrypt
_ccmode_factory_cfb8_decrypt
_ccmode_factory_cfb8_encrypt
_ccmode_factory_cfb_decrypt
_ccmode_factory_cfb_encrypt
_ccmode_factory_ctr_crypt
_ccmode_factory_gcm_decrypt
_ccmode_factory_gcm_encrypt
_ccmode_factory_ofb_crypt
_ccmode_factory_omac_decrypt
_ccmode_factory_omac_encrypt
_ccmode_factory_siv_decrypt
_ccmode_factory_siv_encrypt
_ccmode_factory_xts_decrypt
_ccmode_factory_xts_encrypt
_ccn_add
_ccn_add1
_ccn_bitlen
_ccn_cmp
_ccn_cmpn
_ccn_read_uint
_ccn_sub
_ccn_write_int
_ccn_write_int_size
_ccn_write_uint
_ccn_write_uint_padded_ct
_ccn_write_uint_size
_ccnistkdf_ctr_cmac
_ccnistkdf_ctr_cmac_fixed
_ccnistkdf_ctr_hmac
_ccnistkdf_ctr_hmac_fixed
_ccofb_block_size
_ccofb_context_size
_ccofb_init
_ccofb_one_shot
_ccofb_update
_ccoid_equal
_ccomac_block_size
_ccomac_context_size
_ccomac_init
_ccomac_one_shot
_ccomac_update
_ccpad_cts1_decrypt
_ccpad_cts1_encrypt
_ccpad_cts2_decrypt
_ccpad_cts2_encrypt
_ccpad_cts3_decrypt
_ccpad_cts3_encrypt
_ccpad_pkcs7_decode
_ccpad_pkcs7_decrypt
_ccpad_pkcs7_ecb_decrypt
_ccpad_pkcs7_ecb_encrypt
_ccpad_pkcs7_encrypt
_ccpad_xts_decrypt
_ccpad_xts_encrypt
_ccpbkdf2_hmac
_ccpoly1305
_ccpoly1305_final
_ccpoly1305_init
_ccpoly1305_update
_ccrng_drbg_done
_ccrng_drbg_init
_ccrng_drbg_init_withdrbg
_ccrng_drbg_reseed
_ccrng_ecfips_test_init
_ccrng_pbkdf2_prng_init
_ccrng_prng
_ccrng_rsafips_test_init
_ccrng_rsafips_test_set_next
_ccrng_sequence_init
_ccrng_system_done
_ccrng_system_init
_ccrng_trng
_ccrng_uniform
_ccrsa_decrypt_eme_pkcs1v15
_ccrsa_decrypt_oaep
_ccrsa_dump_full_key
_ccrsa_dump_public_key
_ccrsa_eme_pkcs1v15_decode
_ccrsa_eme_pkcs1v15_decode_safe
_ccrsa_eme_pkcs1v15_encode
_ccrsa_emsa_pkcs1v15_encode
_ccrsa_emsa_pkcs1v15_verify
_ccrsa_emsa_pss_decode
_ccrsa_emsa_pss_encode
_ccrsa_encrypt_eme_pkcs1v15
_ccrsa_encrypt_oaep
_ccrsa_export_priv
_ccrsa_export_priv_size
_ccrsa_export_pub
_ccrsa_generate_fips186_key
_ccrsa_generate_key
_ccrsa_generate_key_deterministic
_ccrsa_get_fullkey_components
_ccrsa_get_pubkey_components
_ccrsa_import_priv
_ccrsa_import_priv_n
_ccrsa_import_pub
_ccrsa_init_pub
_ccrsa_make_priv
_ccrsa_make_pub
_ccrsa_oaep_decode
_ccrsa_oaep_decode_parameter
_ccrsa_oaep_encode
_ccrsa_oaep_encode_parameter
_ccrsa_priv_crypt
_ccrsa_pub_crypt
_ccrsa_pubkeylength
_ccrsa_recover_priv
_ccrsa_sign_pkcs1v15
_ccrsa_sign_pkcs1v15_msg
_ccrsa_sign_pss
_ccrsa_sign_pss_msg
_ccrsa_verify_pkcs1v15
_ccrsa_verify_pkcs1v15_allowshortsigs
_ccrsa_verify_pkcs1v15_digest
_ccrsa_verify_pkcs1v15_msg
_ccrsa_verify_pss_digest
_ccrsa_verify_pss_msg
_ccrsabssa_blind_message
_ccrsabssa_sign_blinded_message
_ccrsabssa_unblind_signature
_ccsae_generate_commitment
_ccsae_generate_commitment_finalize
_ccsae_generate_commitment_init
_ccsae_generate_commitment_partial
_ccsae_generate_confirmation
_ccsae_generate_h2c_commit
_ccsae_generate_h2c_commit_finalize
_ccsae_generate_h2c_commit_init
_ccsae_generate_h2c_pt
_ccsae_get_keys
_ccsae_init
_ccsae_init_p256_sha256
_ccsae_init_p384_sha384
_ccsae_lexographic_order_key
_ccsae_verify_commitment
_ccsae_verify_confirmation
_ccscrypt
_ccscrypt_storage_size
_ccsigma_clear
_ccsigma_clear_key
_ccsigma_compute_mac
_ccsigma_derive_session_keys
_ccsigma_export_key_share
_ccsigma_import_peer_key_share
_ccsigma_import_peer_verification_key
_ccsigma_import_signing_key
_ccsigma_init
_ccsigma_kex_init_ctx
_ccsigma_kex_resp_ctx
_ccsigma_mfi_info
_ccsigma_mfi_nvm_info
_ccsigma_open
_ccsigma_peer_role
_ccsigma_seal
_ccsigma_set_signing_function
_ccsigma_sign
_ccsigma_verify
_ccsiv_aad
_ccsiv_block_size
_ccsiv_ciphertext_size
_ccsiv_context_size
_ccsiv_crypt
_ccsiv_hmac_aad
_ccsiv_hmac_block_size
_ccsiv_hmac_ciphertext_size
_ccsiv_hmac_context_size
_ccsiv_hmac_crypt
_ccsiv_hmac_init
_ccsiv_hmac_one_shot
_ccsiv_hmac_plaintext_size
_ccsiv_hmac_reset
_ccsiv_hmac_set_nonce
_ccsiv_init
_ccsiv_one_shot
_ccsiv_plaintext_size
_ccsiv_reset
_ccsiv_set_nonce
_ccspake_generate_L
_ccspake_kex_generate
_ccspake_kex_process
_ccspake_mac_compute
_ccspake_mac_verify_and_get_session_key
_ccspake_prover_init
_ccspake_prover_initialize
_ccspake_reduce_w
_ccspake_verifier_init
_ccspake_verifier_initialize
_ccsrp_client_process_challenge
_ccsrp_client_start_authentication
_ccsrp_client_verify_session
_ccsrp_generate_salt_and_verification
_ccsrp_generate_verifier
_ccsrp_server_compute_session
_ccsrp_server_generate_public_key
_ccsrp_server_start_authentication
_ccsrp_server_verify_session
_ccss_shamir_parameters_init
_ccss_shamir_parameters_maximum_secret_length
_ccss_shamir_share_bag_add_share
_ccss_shamir_share_bag_init
_ccss_shamir_share_bag_recover_secret
_ccss_shamir_share_export
_ccss_shamir_share_generator_deserialize
_ccss_shamir_share_generator_generate_share
_ccss_shamir_share_generator_init
_ccss_shamir_share_generator_init_with_secrets_less_than_prime
_ccss_shamir_share_generator_serialize
_ccss_shamir_share_import
_ccss_shamir_share_init
_ccss_shamir_share_sizeof_y
_ccvrf_derive_public_key
_ccvrf_factory_irtfdraft03
_ccvrf_factory_irtfdraft03_default
_ccvrf_proof_to_hash
_ccvrf_prove
_ccvrf_verify
_ccwrap_auth_decrypt
_ccwrap_auth_decrypt_withiv
_ccwrap_auth_encrypt
_ccwrap_auth_encrypt_withiv
_ccwrap_unwrapped_size
_ccwrap_wrapped_size
_ccxts_block_size
_ccxts_context_size
_ccxts_init
_ccxts_one_shot
_ccxts_set_tweak
_ccxts_update
_ccz_add
_ccz_addi
_ccz_bit
_ccz_bitlen
_ccz_cmp
_ccz_cmpi
_ccz_divmod
_ccz_expmod
_ccz_free
_ccz_init
_ccz_is_negative
_ccz_is_one
_ccz_is_prime
_ccz_is_zero
_ccz_lsl
_ccz_lsr
_ccz_mod
_ccz_mul
_ccz_muli
_ccz_mulmod
_ccz_neg
_ccz_random_bits
_ccz_read_radix
_ccz_read_uint
_ccz_set
_ccz_set_bit
_ccz_seti
_ccz_size
_ccz_sub
_ccz_subi
_ccz_trailing_zeros
_ccz_write_int
_ccz_write_int_size
_ccz_write_radix
_ccz_write_radix_size
_ccz_write_uint
_ccz_write_uint_size
_ccz_zero
_cczp_add
_cczp_inv
_cczp_mod
_cczp_mul
_cczp_sub
_csss_shamir_share_bag_can_recover_secret
_map_to_curve_sswu
| +|paramcount|0|0| +|`address`|1f1d1fba4|1f1e37664| +|sig|undefined _cc_disable_dit(void)|undefined _cc_disable_dit(void)| +|sym_type|Function|Function| +|sym_source|IMPORTED|IMPORTED| +|external|False|False| + +### _cc_disable_dit Calling Diff + + +```diff +--- _cc_disable_dit calling ++++ _cc_disable_dit calling +@@ -417,0 +418 @@ ++_ccrsa_eme_pkcs1v15_decode_safe +``` + + + + +Generated with `ghidriff` version: 0.6.0 on 2024-01-30T16:21:08 \ No newline at end of file diff --git a/www/docs/guides/Diffing an iOS dylib - CVE-2024-23218.md b/www/docs/guides/Diffing an iOS dylib - CVE-2024-23218.md new file mode 100644 index 0000000..14eaea7 --- /dev/null +++ b/www/docs/guides/Diffing an iOS dylib - CVE-2024-23218.md @@ -0,0 +1,38 @@ +--- +description: Diffing CVE-2024-23218 - An iOS CoreCrypto dylib +--- + + +## Setup + +Start with taking a look at the apple security update from Jan 2024: + +![Alt text](../../static/img/corecypto.jpg) + + +Extract the `libcorecrypo.dylib` from the dyld_shared_cache... + +## Run `ghidirff`: + +```bash +$ ghidriff libcorecrypto.dylib-14.2.1 libcorecrypto.dylib-14.3 +``` + +### Analyze the Diff + +Results in this beatiful markdown: + +- gist - [libcorecrypto.dylib-14.2.1-libcorecrypto.dylib-14.3.ios.ghidriff.md](https://gist.github.com/clearbluejar/395b6c4efb49b91217abb15b816223b8) +- docs - [libcorecrypto.dylib-14.2.1-libcorecrypto.dylib-14.3.ios.ghidriff.md](/diffs/Samples/Mac/libcorecrypto.dylib-14.2.1-libcorecrypto.dylib-14.3) + + +--- + + + + + + + + + diff --git a/www/package-lock.json b/www/package-lock.json index 5e647c7..a347418 100644 --- a/www/package-lock.json +++ b/www/package-lock.json @@ -8,11 +8,11 @@ "name": "www", "version": "0.0.0", "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/plugin-content-docs": "^3.0.1", - "@docusaurus/plugin-sitemap": "^3.0.1", - "@docusaurus/preset-classic": "3.0.1", - "@docusaurus/theme-mermaid": "^3.0.1", + "@docusaurus/core": "^3.1.1", + "@docusaurus/plugin-content-docs": "^3.1.1", + "@docusaurus/plugin-sitemap": "^3.1.1", + "@docusaurus/preset-classic": "^3.1.1", + "@docusaurus/theme-mermaid": "^3.1.1", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "prism-react-renderer": "^2.3.0", @@ -20,8 +20,8 @@ "react-dom": "^18.0.0" }, "devDependencies": { - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/types": "3.0.1" + "@docusaurus/module-type-aliases": "^3.1.1", + "@docusaurus/types": "^3.1.1" }, "engines": { "node": ">=18.0" @@ -69,74 +69,74 @@ } }, "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.22.0.tgz", - "integrity": "sha512-uZ1uZMLDZb4qODLfTSNHxSi4fH9RdrQf7DXEzW01dS8XK7QFtFh29N5NGKa9S+Yudf1vUMIF+/RiL4i/J0pWlQ==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.22.1.tgz", + "integrity": "sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==", "dependencies": { - "@algolia/cache-common": "4.22.0" + "@algolia/cache-common": "4.22.1" } }, "node_modules/@algolia/cache-common": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.22.0.tgz", - "integrity": "sha512-TPwUMlIGPN16eW67qamNQUmxNiGHg/WBqWcrOoCddhqNTqGDPVqmgfaM85LPbt24t3r1z0zEz/tdsmuq3Q6oaA==" + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.22.1.tgz", + "integrity": "sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==" }, "node_modules/@algolia/cache-in-memory": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.22.0.tgz", - "integrity": "sha512-kf4Cio9NpPjzp1+uXQgL4jsMDeck7MP89BYThSvXSjf2A6qV/0KeqQf90TL2ECS02ovLOBXkk98P7qVarM+zGA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.22.1.tgz", + "integrity": "sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==", "dependencies": { - "@algolia/cache-common": "4.22.0" + "@algolia/cache-common": "4.22.1" } }, "node_modules/@algolia/client-account": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.22.0.tgz", - "integrity": "sha512-Bjb5UXpWmJT+yGWiqAJL0prkENyEZTBzdC+N1vBuHjwIJcjLMjPB6j1hNBRbT12Lmwi55uzqeMIKS69w+0aPzA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.22.1.tgz", + "integrity": "sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==", "dependencies": { - "@algolia/client-common": "4.22.0", - "@algolia/client-search": "4.22.0", - "@algolia/transporter": "4.22.0" + "@algolia/client-common": "4.22.1", + "@algolia/client-search": "4.22.1", + "@algolia/transporter": "4.22.1" } }, "node_modules/@algolia/client-analytics": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.22.0.tgz", - "integrity": "sha512-os2K+kHUcwwRa4ArFl5p/3YbF9lN3TLOPkbXXXxOvDpqFh62n9IRZuzfxpHxMPKAQS3Et1s0BkKavnNP02E9Hg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.22.1.tgz", + "integrity": "sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==", "dependencies": { - "@algolia/client-common": "4.22.0", - "@algolia/client-search": "4.22.0", - "@algolia/requester-common": "4.22.0", - "@algolia/transporter": "4.22.0" + "@algolia/client-common": "4.22.1", + "@algolia/client-search": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" } }, "node_modules/@algolia/client-common": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.22.0.tgz", - "integrity": "sha512-BlbkF4qXVWuwTmYxVWvqtatCR3lzXwxx628p1wj1Q7QP2+LsTmGt1DiUYRuy9jG7iMsnlExby6kRMOOlbhv2Ag==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.22.1.tgz", + "integrity": "sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==", "dependencies": { - "@algolia/requester-common": "4.22.0", - "@algolia/transporter": "4.22.0" + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" } }, "node_modules/@algolia/client-personalization": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.22.0.tgz", - "integrity": "sha512-pEOftCxeBdG5pL97WngOBi9w5Vxr5KCV2j2D+xMVZH8MuU/JX7CglDSDDb0ffQWYqcUN+40Ry+xtXEYaGXTGow==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.22.1.tgz", + "integrity": "sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==", "dependencies": { - "@algolia/client-common": "4.22.0", - "@algolia/requester-common": "4.22.0", - "@algolia/transporter": "4.22.0" + "@algolia/client-common": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" } }, "node_modules/@algolia/client-search": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.22.0.tgz", - "integrity": "sha512-bn4qQiIdRPBGCwsNuuqB8rdHhGKKWIij9OqidM1UkQxnSG8yzxHdb7CujM30pvp5EnV7jTqDZRbxacbjYVW20Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.22.1.tgz", + "integrity": "sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==", "dependencies": { - "@algolia/client-common": "4.22.0", - "@algolia/requester-common": "4.22.0", - "@algolia/transporter": "4.22.0" + "@algolia/client-common": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" } }, "node_modules/@algolia/events": { @@ -145,47 +145,47 @@ "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" }, "node_modules/@algolia/logger-common": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.22.0.tgz", - "integrity": "sha512-HMUQTID0ucxNCXs5d1eBJ5q/HuKg8rFVE/vOiLaM4Abfeq1YnTtGV3+rFEhOPWhRQxNDd+YHa4q864IMc0zHpQ==" + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.22.1.tgz", + "integrity": "sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==" }, "node_modules/@algolia/logger-console": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.22.0.tgz", - "integrity": "sha512-7JKb6hgcY64H7CRm3u6DRAiiEVXMvCJV5gRE672QFOUgDxo4aiDpfU61g6Uzy8NKjlEzHMmgG4e2fklELmPXhQ==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.22.1.tgz", + "integrity": "sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==", "dependencies": { - "@algolia/logger-common": "4.22.0" + "@algolia/logger-common": "4.22.1" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.22.0.tgz", - "integrity": "sha512-BHfv1h7P9/SyvcDJDaRuIwDu2yrDLlXlYmjvaLZTtPw6Ok/ZVhBR55JqW832XN/Fsl6k3LjdkYHHR7xnsa5Wvg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.22.1.tgz", + "integrity": "sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==", "dependencies": { - "@algolia/requester-common": "4.22.0" + "@algolia/requester-common": "4.22.1" } }, "node_modules/@algolia/requester-common": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.22.0.tgz", - "integrity": "sha512-Y9cEH/cKjIIZgzvI1aI0ARdtR/xRrOR13g5psCxkdhpgRN0Vcorx+zePhmAa4jdQNqexpxtkUdcKYugBzMZJgQ==" + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.22.1.tgz", + "integrity": "sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==" }, "node_modules/@algolia/requester-node-http": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.22.0.tgz", - "integrity": "sha512-8xHoGpxVhz3u2MYIieHIB6MsnX+vfd5PS4REgglejJ6lPigftRhTdBCToe6zbwq4p0anZXjjPDvNWMlgK2+xYA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.22.1.tgz", + "integrity": "sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==", "dependencies": { - "@algolia/requester-common": "4.22.0" + "@algolia/requester-common": "4.22.1" } }, "node_modules/@algolia/transporter": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.22.0.tgz", - "integrity": "sha512-ieO1k8x2o77GNvOoC+vAkFKppydQSVfbjM3YrSjLmgywiBejPTvU1R1nEvG59JIIUvtSLrZsLGPkd6vL14zopA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.22.1.tgz", + "integrity": "sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==", "dependencies": { - "@algolia/cache-common": "4.22.0", - "@algolia/logger-common": "4.22.0", - "@algolia/requester-common": "4.22.0" + "@algolia/cache-common": "4.22.1", + "@algolia/logger-common": "4.22.1", + "@algolia/requester-common": "4.22.1" } }, "node_modules/@ampproject/remapping": { @@ -2171,9 +2171,9 @@ } }, "node_modules/@docusaurus/core": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.0.1.tgz", - "integrity": "sha512-CXrLpOnW+dJdSv8M5FAJ3JBwXtL6mhUWxFA8aS0ozK6jBG/wgxERk5uvH28fCeFxOGbAT9v1e9dOMo1X2IEVhQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.1.1.tgz", + "integrity": "sha512-2nQfKFcf+MLEM7JXsXwQxPOmQAR6ytKMZVSx7tVi9HEm9WtfwBH1fp6bn8Gj4zLUhjWKCLoysQ9/Wm+EZCQ4yQ==", "dependencies": { "@babel/core": "^7.23.3", "@babel/generator": "^7.23.3", @@ -2185,13 +2185,13 @@ "@babel/runtime": "^7.22.6", "@babel/runtime-corejs3": "^7.22.6", "@babel/traverse": "^7.22.8", - "@docusaurus/cssnano-preset": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", + "@docusaurus/cssnano-preset": "3.1.1", + "@docusaurus/logger": "3.1.1", + "@docusaurus/mdx-loader": "3.1.1", "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "@docusaurus/utils": "3.1.1", + "@docusaurus/utils-common": "3.1.1", + "@docusaurus/utils-validation": "3.1.1", "@slorber/static-site-generator-webpack-plugin": "^4.0.7", "@svgr/webpack": "^6.5.1", "autoprefixer": "^10.4.14", @@ -2257,9 +2257,9 @@ } }, "node_modules/@docusaurus/cssnano-preset": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.0.1.tgz", - "integrity": "sha512-wjuXzkHMW+ig4BD6Ya1Yevx9UJadO4smNZCEljqBoQfIQrQskTswBs7lZ8InHP7mCt273a/y/rm36EZhqJhknQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.1.1.tgz", + "integrity": "sha512-LnoIDjJWbirdbVZDMq+4hwmrTl2yHDnBf9MLG9qyExeAE3ac35s4yUhJI8yyTCdixzNfKit4cbXblzzqMu4+8g==", "dependencies": { "cssnano-preset-advanced": "^5.3.10", "postcss": "^8.4.26", @@ -2271,9 +2271,9 @@ } }, "node_modules/@docusaurus/logger": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.0.1.tgz", - "integrity": "sha512-I5L6Nk8OJzkVA91O2uftmo71LBSxe1vmOn9AMR6JRCzYeEBrqneWMH02AqMvjJ2NpMiviO+t0CyPjyYV7nxCWQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.1.1.tgz", + "integrity": "sha512-BjkNDpQzewcTnST8trx4idSoAla6zZ3w22NqM/UMcFtvYJgmoE4layuTzlfql3VFPNuivvj7BOExa/+21y4X2Q==", "dependencies": { "chalk": "^4.1.2", "tslib": "^2.6.0" @@ -2283,15 +2283,15 @@ } }, "node_modules/@docusaurus/mdx-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.0.1.tgz", - "integrity": "sha512-ldnTmvnvlrONUq45oKESrpy+lXtbnTcTsFkOTIDswe5xx5iWJjt6eSa0f99ZaWlnm24mlojcIGoUWNCS53qVlQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.1.1.tgz", + "integrity": "sha512-xN2IccH9+sv7TmxwsDJNS97BHdmlqWwho+kIVY4tcCXkp+k4QuzvWBeunIMzeayY4Fu13A6sAjHGv5qm72KyGA==", "dependencies": { "@babel/parser": "^7.22.7", "@babel/traverse": "^7.22.8", - "@docusaurus/logger": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "@docusaurus/logger": "3.1.1", + "@docusaurus/utils": "3.1.1", + "@docusaurus/utils-validation": "3.1.1", "@mdx-js/mdx": "^3.0.0", "@slorber/remark-comment": "^1.0.0", "escape-html": "^1.0.3", @@ -2323,12 +2323,12 @@ } }, "node_modules/@docusaurus/module-type-aliases": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.0.1.tgz", - "integrity": "sha512-DEHpeqUDsLynl3AhQQiO7AbC7/z/lBra34jTcdYuvp9eGm01pfH1wTVq8YqWZq6Jyx0BgcVl/VJqtE9StRd9Ag==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.1.1.tgz", + "integrity": "sha512-xBJyx0TMfAfVZ9ZeIOb1awdXgR4YJMocIEzTps91rq+hJDFJgJaylDtmoRhUxkwuYmNK1GJpW95b7DLztSBJ3A==", "dependencies": { "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "3.0.1", + "@docusaurus/types": "3.1.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -2342,17 +2342,17 @@ } }, "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.0.1.tgz", - "integrity": "sha512-cLOvtvAyaMQFLI8vm4j26svg3ktxMPSXpuUJ7EERKoGbfpJSsgtowNHcRsaBVmfuCsRSk1HZ/yHBsUkTmHFEsg==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.1.1.tgz", + "integrity": "sha512-ew/3VtVoG3emoAKmoZl7oKe1zdFOsI0NbcHS26kIxt2Z8vcXKCUgK9jJJrz0TbOipyETPhqwq4nbitrY3baibg==", + "dependencies": { + "@docusaurus/core": "3.1.1", + "@docusaurus/logger": "3.1.1", + "@docusaurus/mdx-loader": "3.1.1", + "@docusaurus/types": "3.1.1", + "@docusaurus/utils": "3.1.1", + "@docusaurus/utils-common": "3.1.1", + "@docusaurus/utils-validation": "3.1.1", "cheerio": "^1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^11.1.1", @@ -2373,17 +2373,17 @@ } }, "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.0.1.tgz", - "integrity": "sha512-dRfAOA5Ivo+sdzzJGXEu33yAtvGg8dlZkvt/NEJ7nwi1F2j4LEdsxtfX2GKeETB2fP6XoGNSQnFXqa2NYGrHFg==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.1.1.tgz", + "integrity": "sha512-lhFq4E874zw0UOH7ujzxnCayOyAt0f9YPVYSb9ohxrdCM8B4szxitUw9rIX4V9JLLHVoqIJb6k+lJJ1jrcGJ0A==", + "dependencies": { + "@docusaurus/core": "3.1.1", + "@docusaurus/logger": "3.1.1", + "@docusaurus/mdx-loader": "3.1.1", + "@docusaurus/module-type-aliases": "3.1.1", + "@docusaurus/types": "3.1.1", + "@docusaurus/utils": "3.1.1", + "@docusaurus/utils-validation": "3.1.1", "@types/react-router-config": "^5.0.7", "combine-promises": "^1.1.0", "fs-extra": "^11.1.1", @@ -2402,15 +2402,15 @@ } }, "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.0.1.tgz", - "integrity": "sha512-oP7PoYizKAXyEttcvVzfX3OoBIXEmXTMzCdfmC4oSwjG4SPcJsRge3mmI6O8jcZBgUPjIzXD21bVGWEE1iu8gg==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.1.1.tgz", + "integrity": "sha512-NQHncNRAJbyLtgTim9GlEnNYsFhuCxaCNkMwikuxLTiGIPH7r/jpb7O3f3jUMYMebZZZrDq5S7om9a6rvB/YCA==", + "dependencies": { + "@docusaurus/core": "3.1.1", + "@docusaurus/mdx-loader": "3.1.1", + "@docusaurus/types": "3.1.1", + "@docusaurus/utils": "3.1.1", + "@docusaurus/utils-validation": "3.1.1", "fs-extra": "^11.1.1", "tslib": "^2.6.0", "webpack": "^5.88.1" @@ -2424,13 +2424,13 @@ } }, "node_modules/@docusaurus/plugin-debug": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.0.1.tgz", - "integrity": "sha512-09dxZMdATky4qdsZGzhzlUvvC+ilQ2hKbYF+wez+cM2mGo4qHbv8+qKXqxq0CQZyimwlAOWQLoSozIXU0g0i7g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.1.1.tgz", + "integrity": "sha512-xWeMkueM9wE/8LVvl4+Qf1WqwXmreMjI5Kgr7GYCDoJ8zu4kD+KaMhrh7py7MNM38IFvU1RfrGKacCEe2DRRfQ==", "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", + "@docusaurus/core": "3.1.1", + "@docusaurus/types": "3.1.1", + "@docusaurus/utils": "3.1.1", "fs-extra": "^11.1.1", "react-json-view-lite": "^1.2.0", "tslib": "^2.6.0" @@ -2444,13 +2444,13 @@ } }, "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.0.1.tgz", - "integrity": "sha512-jwseSz1E+g9rXQwDdr0ZdYNjn8leZBnKPjjQhMBEiwDoenL3JYFcNW0+p0sWoVF/f2z5t7HkKA+cYObrUh18gg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.1.1.tgz", + "integrity": "sha512-+q2UpWTqVi8GdlLoSlD5bS/YpxW+QMoBwrPrUH/NpvpuOi0Of7MTotsQf9JWd3hymZxl2uu1o3PIrbpxfeDFDQ==", "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "@docusaurus/core": "3.1.1", + "@docusaurus/types": "3.1.1", + "@docusaurus/utils-validation": "3.1.1", "tslib": "^2.6.0" }, "engines": { @@ -2462,13 +2462,13 @@ } }, "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.0.1.tgz", - "integrity": "sha512-UFTDvXniAWrajsulKUJ1DB6qplui1BlKLQZjX4F7qS/qfJ+qkKqSkhJ/F4VuGQ2JYeZstYb+KaUzUzvaPK1aRQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.1.1.tgz", + "integrity": "sha512-0mMPiBBlQ5LFHTtjxuvt/6yzh8v7OxLi3CbeEsxXZpUzcKO/GC7UA1VOWUoBeQzQL508J12HTAlR3IBU9OofSw==", "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "@docusaurus/core": "3.1.1", + "@docusaurus/types": "3.1.1", + "@docusaurus/utils-validation": "3.1.1", "@types/gtag.js": "^0.0.12", "tslib": "^2.6.0" }, @@ -2481,13 +2481,13 @@ } }, "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.0.1.tgz", - "integrity": "sha512-IPFvuz83aFuheZcWpTlAdiiX1RqWIHM+OH8wS66JgwAKOiQMR3+nLywGjkLV4bp52x7nCnwhNk1rE85Cpy/CIw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.1.1.tgz", + "integrity": "sha512-d07bsrMLdDIryDtY17DgqYUbjkswZQr8cLWl4tzXrt5OR/T/zxC1SYKajzB3fd87zTu5W5klV5GmUwcNSMXQXA==", "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "@docusaurus/core": "3.1.1", + "@docusaurus/types": "3.1.1", + "@docusaurus/utils-validation": "3.1.1", "tslib": "^2.6.0" }, "engines": { @@ -2499,16 +2499,16 @@ } }, "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.0.1.tgz", - "integrity": "sha512-xARiWnjtVvoEniZudlCq5T9ifnhCu/GAZ5nA7XgyLfPcNpHQa241HZdsTlLtVcecEVVdllevBKOp7qknBBaMGw==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.1.1.tgz", + "integrity": "sha512-iJ4hCaMmDaUqRv131XJdt/C/jJQx8UreDWTRqZKtNydvZVh/o4yXGRRFOplea1D9b/zpwL1Y+ZDwX7xMhIOTmg==", + "dependencies": { + "@docusaurus/core": "3.1.1", + "@docusaurus/logger": "3.1.1", + "@docusaurus/types": "3.1.1", + "@docusaurus/utils": "3.1.1", + "@docusaurus/utils-common": "3.1.1", + "@docusaurus/utils-validation": "3.1.1", "fs-extra": "^11.1.1", "sitemap": "^7.1.1", "tslib": "^2.6.0" @@ -2522,23 +2522,23 @@ } }, "node_modules/@docusaurus/preset-classic": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.0.1.tgz", - "integrity": "sha512-il9m9xZKKjoXn6h0cRcdnt6wce0Pv1y5t4xk2Wx7zBGhKG1idu4IFHtikHlD0QPuZ9fizpXspXcTzjL5FXc1Gw==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/plugin-content-blog": "3.0.1", - "@docusaurus/plugin-content-docs": "3.0.1", - "@docusaurus/plugin-content-pages": "3.0.1", - "@docusaurus/plugin-debug": "3.0.1", - "@docusaurus/plugin-google-analytics": "3.0.1", - "@docusaurus/plugin-google-gtag": "3.0.1", - "@docusaurus/plugin-google-tag-manager": "3.0.1", - "@docusaurus/plugin-sitemap": "3.0.1", - "@docusaurus/theme-classic": "3.0.1", - "@docusaurus/theme-common": "3.0.1", - "@docusaurus/theme-search-algolia": "3.0.1", - "@docusaurus/types": "3.0.1" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.1.1.tgz", + "integrity": "sha512-jG4ys/hWYf69iaN/xOmF+3kjs4Nnz1Ay3CjFLDtYa8KdxbmUhArA9HmP26ru5N0wbVWhY+6kmpYhTJpez5wTyg==", + "dependencies": { + "@docusaurus/core": "3.1.1", + "@docusaurus/plugin-content-blog": "3.1.1", + "@docusaurus/plugin-content-docs": "3.1.1", + "@docusaurus/plugin-content-pages": "3.1.1", + "@docusaurus/plugin-debug": "3.1.1", + "@docusaurus/plugin-google-analytics": "3.1.1", + "@docusaurus/plugin-google-gtag": "3.1.1", + "@docusaurus/plugin-google-tag-manager": "3.1.1", + "@docusaurus/plugin-sitemap": "3.1.1", + "@docusaurus/theme-classic": "3.1.1", + "@docusaurus/theme-common": "3.1.1", + "@docusaurus/theme-search-algolia": "3.1.1", + "@docusaurus/types": "3.1.1" }, "engines": { "node": ">=18.0" @@ -2561,22 +2561,22 @@ } }, "node_modules/@docusaurus/theme-classic": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.0.1.tgz", - "integrity": "sha512-XD1FRXaJiDlmYaiHHdm27PNhhPboUah9rqIH0lMpBt5kYtsGjJzhqa27KuZvHLzOP2OEpqd2+GZ5b6YPq7Q05Q==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/plugin-content-blog": "3.0.1", - "@docusaurus/plugin-content-docs": "3.0.1", - "@docusaurus/plugin-content-pages": "3.0.1", - "@docusaurus/theme-common": "3.0.1", - "@docusaurus/theme-translations": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.1.1.tgz", + "integrity": "sha512-GiPE/jbWM8Qv1A14lk6s9fhc0LhPEQ00eIczRO4QL2nAQJZXkjPG6zaVx+1cZxPFWbAsqSjKe2lqkwF3fGkQ7Q==", + "dependencies": { + "@docusaurus/core": "3.1.1", + "@docusaurus/mdx-loader": "3.1.1", + "@docusaurus/module-type-aliases": "3.1.1", + "@docusaurus/plugin-content-blog": "3.1.1", + "@docusaurus/plugin-content-docs": "3.1.1", + "@docusaurus/plugin-content-pages": "3.1.1", + "@docusaurus/theme-common": "3.1.1", + "@docusaurus/theme-translations": "3.1.1", + "@docusaurus/types": "3.1.1", + "@docusaurus/utils": "3.1.1", + "@docusaurus/utils-common": "3.1.1", + "@docusaurus/utils-validation": "3.1.1", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "copy-text-to-clipboard": "^3.2.0", @@ -2600,17 +2600,17 @@ } }, "node_modules/@docusaurus/theme-common": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.0.1.tgz", - "integrity": "sha512-cr9TOWXuIOL0PUfuXv6L5lPlTgaphKP+22NdVBOYah5jSq5XAAulJTjfe+IfLsEG4L7lJttLbhW7LXDFSAI7Ag==", - "dependencies": { - "@docusaurus/mdx-loader": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/plugin-content-blog": "3.0.1", - "@docusaurus/plugin-content-docs": "3.0.1", - "@docusaurus/plugin-content-pages": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-common": "3.0.1", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.1.1.tgz", + "integrity": "sha512-38urZfeMhN70YaXkwIGXmcUcv2CEYK/2l4b05GkJPrbEbgpsIZM3Xc+Js2ehBGGZmfZq8GjjQ5RNQYG+MYzCYg==", + "dependencies": { + "@docusaurus/mdx-loader": "3.1.1", + "@docusaurus/module-type-aliases": "3.1.1", + "@docusaurus/plugin-content-blog": "3.1.1", + "@docusaurus/plugin-content-docs": "3.1.1", + "@docusaurus/plugin-content-pages": "3.1.1", + "@docusaurus/utils": "3.1.1", + "@docusaurus/utils-common": "3.1.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -2629,15 +2629,15 @@ } }, "node_modules/@docusaurus/theme-mermaid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.0.1.tgz", - "integrity": "sha512-jquSDnZfazABnC5i+02GzRIvufXKruKgvbYkQjKbI7/LWo0XvBs0uKAcCDGgHhth0t/ON5+Sn27joRfpeSk3Lw==", - "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/theme-common": "3.0.1", - "@docusaurus/types": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.1.1.tgz", + "integrity": "sha512-O6u9/7QX/ZapV4HJJSzNs0Jir1KA/LRLORWYeDvbGswqZNusj6q4iLELrKIClysJ3PB3zWUzyKtI/wjIKiV1vA==", + "dependencies": { + "@docusaurus/core": "3.1.1", + "@docusaurus/module-type-aliases": "3.1.1", + "@docusaurus/theme-common": "3.1.1", + "@docusaurus/types": "3.1.1", + "@docusaurus/utils-validation": "3.1.1", "mermaid": "^10.4.0", "tslib": "^2.6.0" }, @@ -2650,18 +2650,18 @@ } }, "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.0.1.tgz", - "integrity": "sha512-DDiPc0/xmKSEdwFkXNf1/vH1SzJPzuJBar8kMcBbDAZk/SAmo/4lf6GU2drou4Ae60lN2waix+jYWTWcJRahSA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.1.1.tgz", + "integrity": "sha512-tBH9VY5EpRctVdaAhT+b1BY8y5dyHVZGFXyCHgTrvcXQy5CV4q7serEX7U3SveNT9zksmchPyct6i1sFDC4Z5g==", "dependencies": { "@docsearch/react": "^3.5.2", - "@docusaurus/core": "3.0.1", - "@docusaurus/logger": "3.0.1", - "@docusaurus/plugin-content-docs": "3.0.1", - "@docusaurus/theme-common": "3.0.1", - "@docusaurus/theme-translations": "3.0.1", - "@docusaurus/utils": "3.0.1", - "@docusaurus/utils-validation": "3.0.1", + "@docusaurus/core": "3.1.1", + "@docusaurus/logger": "3.1.1", + "@docusaurus/plugin-content-docs": "3.1.1", + "@docusaurus/theme-common": "3.1.1", + "@docusaurus/theme-translations": "3.1.1", + "@docusaurus/utils": "3.1.1", + "@docusaurus/utils-validation": "3.1.1", "algoliasearch": "^4.18.0", "algoliasearch-helper": "^3.13.3", "clsx": "^2.0.0", @@ -2680,9 +2680,9 @@ } }, "node_modules/@docusaurus/theme-translations": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.0.1.tgz", - "integrity": "sha512-6UrbpzCTN6NIJnAtZ6Ne9492vmPVX+7Fsz4kmp+yor3KQwA1+MCzQP7ItDNkP38UmVLnvB/cYk/IvehCUqS3dg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.1.1.tgz", + "integrity": "sha512-xvWQFwjxHphpJq5fgk37FXCDdAa2o+r7FX8IpMg+bGZBNXyWBu3MjZ+G4+eUVNpDhVinTc+j6ucL0Ain5KCGrg==", "dependencies": { "fs-extra": "^11.1.1", "tslib": "^2.6.0" @@ -2692,10 +2692,11 @@ } }, "node_modules/@docusaurus/types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.0.1.tgz", - "integrity": "sha512-plyX2iU1tcUsF46uQ01pAd4JhexR7n0iiQ5MSnBFX6M6NSJgDYdru/i1/YNPKOnQHBoXGLHv0dNT6OAlDWNjrg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.1.tgz", + "integrity": "sha512-grBqOLnubUecgKFXN9q3uit2HFbCxTWX4Fam3ZFbMN0sWX9wOcDoA7lwdX/8AmeL20Oc4kQvWVgNrsT8bKRvzg==", "dependencies": { + "@mdx-js/mdx": "^3.0.0", "@types/history": "^4.7.11", "@types/react": "*", "commander": "^5.1.0", @@ -2711,11 +2712,11 @@ } }, "node_modules/@docusaurus/utils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.0.1.tgz", - "integrity": "sha512-TwZ33Am0q4IIbvjhUOs+zpjtD/mXNmLmEgeTGuRq01QzulLHuPhaBTTAC/DHu6kFx3wDgmgpAlaRuCHfTcXv8g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.1.1.tgz", + "integrity": "sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg==", "dependencies": { - "@docusaurus/logger": "3.0.1", + "@docusaurus/logger": "3.1.1", "@svgr/webpack": "^6.5.1", "escape-string-regexp": "^4.0.0", "file-loader": "^6.2.0", @@ -2746,9 +2747,9 @@ } }, "node_modules/@docusaurus/utils-common": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.0.1.tgz", - "integrity": "sha512-W0AxD6w6T8g6bNro8nBRWf7PeZ/nn7geEWM335qHU2DDDjHuV4UZjgUGP1AQsdcSikPrlIqTJJbKzer1lRSlIg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.1.1.tgz", + "integrity": "sha512-eGne3olsIoNfPug5ixjepZAIxeYFzHHnor55Wb2P57jNbtVaFvij/T+MS8U0dtZRFi50QU+UPmRrXdVUM8uyMg==", "dependencies": { "tslib": "^2.6.0" }, @@ -2765,12 +2766,12 @@ } }, "node_modules/@docusaurus/utils-validation": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.0.1.tgz", - "integrity": "sha512-ujTnqSfyGQ7/4iZdB4RRuHKY/Nwm58IIb+41s5tCXOv/MBU2wGAjOHq3U+AEyJ8aKQcHbxvTKJaRchNHYUVUQg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.1.1.tgz", + "integrity": "sha512-KlY4P9YVDnwL+nExvlIpu79abfEv6ZCHuOX4ZQ+gtip+Wxj0daccdReIWWtqxM/Fb5Cz1nQvUCc7VEtT8IBUAA==", "dependencies": { - "@docusaurus/logger": "3.0.1", - "@docusaurus/utils": "3.0.1", + "@docusaurus/logger": "3.1.1", + "@docusaurus/utils": "3.1.1", "joi": "^17.9.2", "js-yaml": "^4.1.0", "tslib": "^2.6.0" @@ -3001,9 +3002,9 @@ "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==" }, "node_modules/@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", "dependencies": { "@hapi/hoek": "^9.0.0" } @@ -3411,9 +3412,9 @@ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "node_modules/@types/estree-jsx": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.3.tgz", - "integrity": "sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.4.tgz", + "integrity": "sha512-5idy3hvI9lAMqsyilBM+N+boaCf1MgoefbDxN6KEO5aK17TOHwFAYT9sjxzeKAiIWRUBgLxmZ9mPcnzZXtTcRQ==", "dependencies": { "@types/estree": "*" } @@ -3446,9 +3447,9 @@ "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==" }, "node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { "@types/unist": "*" } @@ -3964,30 +3965,30 @@ } }, "node_modules/algoliasearch": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.22.0.tgz", - "integrity": "sha512-gfceltjkwh7PxXwtkS8KVvdfK+TSNQAWUeNSxf4dA29qW5tf2EGwa8jkJujlT9jLm17cixMVoGNc+GJFO1Mxhg==", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.22.0", - "@algolia/cache-common": "4.22.0", - "@algolia/cache-in-memory": "4.22.0", - "@algolia/client-account": "4.22.0", - "@algolia/client-analytics": "4.22.0", - "@algolia/client-common": "4.22.0", - "@algolia/client-personalization": "4.22.0", - "@algolia/client-search": "4.22.0", - "@algolia/logger-common": "4.22.0", - "@algolia/logger-console": "4.22.0", - "@algolia/requester-browser-xhr": "4.22.0", - "@algolia/requester-common": "4.22.0", - "@algolia/requester-node-http": "4.22.0", - "@algolia/transporter": "4.22.0" + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.22.1.tgz", + "integrity": "sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.22.1", + "@algolia/cache-common": "4.22.1", + "@algolia/cache-in-memory": "4.22.1", + "@algolia/client-account": "4.22.1", + "@algolia/client-analytics": "4.22.1", + "@algolia/client-common": "4.22.1", + "@algolia/client-personalization": "4.22.1", + "@algolia/client-search": "4.22.1", + "@algolia/logger-common": "4.22.1", + "@algolia/logger-console": "4.22.1", + "@algolia/requester-browser-xhr": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/requester-node-http": "4.22.1", + "@algolia/transporter": "4.22.1" } }, "node_modules/algoliasearch-helper": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.16.0.tgz", - "integrity": "sha512-RxOtBafSQwyqD5BLO/q9VsVw/zuNz8kjb51OZhCIWLr33uvKB+vrRis+QK+JFlNQXbXf+w28fsTWiBupc1pHew==", + "version": "3.16.2", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.16.2.tgz", + "integrity": "sha512-Yl/Gu5Cq4Z5s/AJ0jR37OPI1H3+z7PHz657ibyaXgMOaWvPlZ3OACN13N+7HCLPUlB0BN+8BtmrG/CqTilowBA==", "dependencies": { "@algolia/events": "^4.0.1" }, @@ -4106,9 +4107,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "version": "10.4.17", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", + "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", "funding": [ { "type": "opencollective", @@ -4124,9 +4125,9 @@ } ], "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", + "browserslist": "^4.22.2", + "caniuse-lite": "^1.0.30001578", + "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -4478,9 +4479,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001570", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", - "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==", + "version": "1.0.30001583", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001583.tgz", + "integrity": "sha512-acWTYaha8xfhA/Du/z4sNZjHUWjkiuoAi2LM+T/aL+kemKQgPT1xBb/YKjlQ0Qo8gvbHsGNplrEJ+9G3gL7i4Q==", "funding": [ { "type": "opencollective", @@ -7485,9 +7486,9 @@ } }, "node_modules/hast-util-raw": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.1.tgz", - "integrity": "sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.2.tgz", + "integrity": "sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -7961,9 +7962,9 @@ } }, "node_modules/image-size": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", - "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", + "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", "dependencies": { "queue": "6.0.2" }, @@ -7971,7 +7972,7 @@ "image-size": "bin/image-size.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.x" } }, "node_modules/immer": { @@ -8420,13 +8421,13 @@ } }, "node_modules/joi": { - "version": "17.11.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", - "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", + "version": "17.12.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.1.tgz", + "integrity": "sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ==", "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } @@ -8846,9 +8847,9 @@ } }, "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -9015,9 +9016,9 @@ } }, "node_modules/mdast-util-phrasing": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.0.0.tgz", - "integrity": "sha512-xadSsJayQIucJ9n053dfQwVu1kuXg7jCTdYsMK8rqzKZh52nLfSH/k0sAxE0u+pj/zKZX+o5wB+ML5mRayOxFA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" @@ -9028,9 +9029,9 @@ } }, "node_modules/mdast-util-to-hast": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.0.2.tgz", - "integrity": "sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz", + "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -9039,7 +9040,8 @@ "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0" + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", @@ -9681,9 +9683,9 @@ } }, "node_modules/micromark-core-commonmark/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -9752,9 +9754,9 @@ } }, "node_modules/micromark-extension-directive/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -9801,9 +9803,9 @@ } }, "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -9869,9 +9871,9 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -9941,9 +9943,9 @@ } }, "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -10042,9 +10044,9 @@ } }, "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -10123,9 +10125,9 @@ } }, "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -10201,9 +10203,9 @@ } }, "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -10275,9 +10277,9 @@ } }, "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -10360,9 +10362,9 @@ } }, "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -10414,9 +10416,9 @@ } }, "node_modules/micromark-factory-destination/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -10469,9 +10471,9 @@ } }, "node_modules/micromark-factory-label/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -10528,9 +10530,9 @@ } }, "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -10636,9 +10638,9 @@ } }, "node_modules/micromark-factory-title/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -10710,9 +10712,9 @@ } }, "node_modules/micromark-factory-whitespace/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -10831,9 +10833,9 @@ } }, "node_modules/micromark-util-classify-character/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -10938,9 +10940,9 @@ } }, "node_modules/micromark-util-decode-string/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -11113,9 +11115,9 @@ } }, "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -11232,9 +11234,9 @@ } }, "node_modules/micromark/node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -12643,9 +12645,9 @@ } }, "node_modules/property-information": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.0.tgz", - "integrity": "sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz", + "integrity": "sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -13319,9 +13321,9 @@ } }, "node_modules/remark-rehype": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.0.0.tgz", - "integrity": "sha512-vx8x2MDMcxuE4lBmQ46zYUDfcFMmvg80WYX+UNLeG6ixjdCCLcw1lrgAukwBTuOFsS78eoAedHGn9sNM0w7TPw==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", + "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", diff --git a/www/package.json b/www/package.json index c5a2866..82b0c88 100644 --- a/www/package.json +++ b/www/package.json @@ -14,11 +14,11 @@ "write-heading-ids": "docusaurus write-heading-ids" }, "dependencies": { - "@docusaurus/core": "3.0.1", - "@docusaurus/plugin-content-docs": "^3.0.1", - "@docusaurus/plugin-sitemap": "^3.0.1", - "@docusaurus/preset-classic": "3.0.1", - "@docusaurus/theme-mermaid": "^3.0.1", + "@docusaurus/core": "^3.1.1", + "@docusaurus/plugin-content-docs": "^3.1.1", + "@docusaurus/plugin-sitemap": "^3.1.1", + "@docusaurus/preset-classic": "^3.1.1", + "@docusaurus/theme-mermaid": "^3.1.1", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "prism-react-renderer": "^2.3.0", @@ -26,8 +26,8 @@ "react-dom": "^18.0.0" }, "devDependencies": { - "@docusaurus/module-type-aliases": "3.0.1", - "@docusaurus/types": "3.0.1" + "@docusaurus/module-type-aliases": "^3.1.1", + "@docusaurus/types": "^3.1.1" }, "browserslist": { "production": [ diff --git a/www/static/img/corecypto.jpg b/www/static/img/corecypto.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cf95de17cd04c35b6f709b51b16979474860cf44 GIT binary patch literal 242768 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

-}o# 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%0D}u8{9vg(S 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 literal 0 HcmV?d00001