diff --git a/BIBLIOGRAPHY.md b/BIBLIOGRAPHY.md index d137b898e0..46b0ecdc62 100644 --- a/BIBLIOGRAPHY.md +++ b/BIBLIOGRAPHY.md @@ -36,6 +36,17 @@ source code and documentation. * Referenced from: - [README.md](README.md) +### `ADOMNICAI23` + +* An update on Keccak performance on ARMv7-M +* Author(s): + - Alexandre Adomnicai +* URL: https://eprint.iacr.org/2023/773 +* Referenced from: + - [dev/fips202/armv81m_clean/src/keccak_f1600_x1_armv81m.S](dev/fips202/armv81m_clean/src/keccak_f1600_x1_armv81m.S) + - [dev/fips202/armv81m_opt/src/keccak_f1600_x1_armv7m_opt_m55.S](dev/fips202/armv81m_opt/src/keccak_f1600_x1_armv7m_opt_m55.S) + - [mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m_opt_m55.S](mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m_opt_m55.S) + ### `ArmARMv8M` * Armv8-M Architecture Reference Manual (DDI 0553) @@ -371,6 +382,19 @@ source code and documentation. - [mldsa/src/sign.c](mldsa/src/sign.c) - [proofs/hol_light/README.md](proofs/hol_light/README.md) +### `SLOTHYM7` + +* Enabling Microarchitectural Agility: Taking ML-KEM and ML-DSA from Cortex-M4 to M7 with SLOTHY +* Author(s): + - Amin Abdulrahman + - Matthias J. Kannwischer + - Joel Lim +* URL: https://eprint.iacr.org/2025/366 +* Referenced from: + - [dev/fips202/armv81m_clean/src/keccak_f1600_x1_armv81m.S](dev/fips202/armv81m_clean/src/keccak_f1600_x1_armv81m.S) + - [dev/fips202/armv81m_opt/src/keccak_f1600_x1_armv7m_opt_m55.S](dev/fips202/armv81m_opt/src/keccak_f1600_x1_armv7m_opt_m55.S) + - [mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m_opt_m55.S](mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m_opt_m55.S) + ### `SLOTHY_Paper` * Fast and Clean: Auditable high-performance assembly via constraint solving @@ -404,6 +428,21 @@ source code and documentation. - [test/abicheck/README.md](test/abicheck/README.md) - [test/abicheck/x86_64/abicheck_x86_64.c](test/abicheck/x86_64/abicheck_x86_64.c) +### `XKCP` + +* eXtended Keccak Code Package +* Author(s): + - Guido Bertoni + - Joan Daemen + - Michaël Peeters + - Gilles Van Assche + - Ronny Van Keer +* URL: https://github.com/XKCP/XKCP +* Referenced from: + - [dev/fips202/armv81m_clean/src/keccak_f1600_x1_armv81m.S](dev/fips202/armv81m_clean/src/keccak_f1600_x1_armv81m.S) + - [dev/fips202/armv81m_opt/src/keccak_f1600_x1_armv7m_opt_m55.S](dev/fips202/armv81m_opt/src/keccak_f1600_x1_armv7m_opt_m55.S) + - [mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m_opt_m55.S](mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m_opt_m55.S) + ### `libmceliece` * libmceliece implementation of Classic McEliece diff --git a/BIBLIOGRAPHY.yml b/BIBLIOGRAPHY.yml index 0a4bc825ba..33310d76dc 100644 --- a/BIBLIOGRAPHY.yml +++ b/BIBLIOGRAPHY.yml @@ -109,6 +109,29 @@ - Klein, Fabien url: https://eprint.iacr.org/2022/1303 +- id: ADOMNICAI23 + name: "An update on Keccak performance on ARMv7-M" + author: Adomnicai, Alexandre + url: https://eprint.iacr.org/2023/773 + +- id: SLOTHYM7 + name: "Enabling Microarchitectural Agility: Taking ML-KEM and ML-DSA from Cortex-M4 to M7 with SLOTHY" + author: + - Abdulrahman, Amin + - Kannwischer, Matthias J. + - Lim, Joel + url: https://eprint.iacr.org/2025/366 + +- id: XKCP + name: eXtended Keccak Code Package + author: + - Bertoni, Guido + - Daemen, Joan + - Peeters, Michaël + - Van Assche, Gilles + - Van Keer, Ronny + url: https://github.com/XKCP/XKCP + - id: NeonNTT name: "Neon NTT: Faster Dilithium, Kyber, and Saber on Cortex-A72 and Apple M1" year: 2022 diff --git a/LICENSE b/LICENSE index 5fd3c1b135..cfa3000195 100644 --- a/LICENSE +++ b/LICENSE @@ -14,11 +14,17 @@ It is only used for testing purposes. The benchmarking code in test/hal/hal.c carries the MIT license. It is only used for testing purposes. +The Armv8.1-M Keccak implementation contains portions adapted from SLOTHY +examples distributed under the MIT license. The applicable SLOTHY copyright +notices are included below. + ``` Copyright (c) The mldsa-native project authors Copyright (c) The mlkem-native project authors Copyright (c) 2020 Dougall Johnson Copyright (c) 2022 Arm Limited +Copyright (c) 2022 Hanno Becker +Copyright (c) 2023 Amin Abdulrahman, Matthias Kannwischer SPDX-License-Identifier: MIT Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/dev/fips202/armv81m/README.md b/dev/fips202/armv81m/README.md index 76c4c1d222..c9be46efd4 100644 --- a/dev/fips202/armv81m/README.md +++ b/dev/fips202/armv81m/README.md @@ -1,9 +1,14 @@ [//]: # (SPDX-License-Identifier: CC-BY-4.0) -# FIPS202 backend for Armv8.1-M + MVE: Development sources +# FIPS202 backend for Armv8.1-M: Development sources -This directory contains the development sources for a FIPS202 backend targeting -the Armv8.1-M + MVE/Helium architecture. +This directory contains the development sources for the Armv8.1-M FIPS202 +backend. Its `src/` directory contains the direct MVE/Helium x4 +implementation. The x1 permutation and MVE byte XOR/extract helpers are +maintained in [`../armv81m_opt/src/`](../armv81m_opt/src/) and generated by +SLOTHY from [`../armv81m_clean/src/`](../armv81m_clean/src/). Autogeneration +combines the source files from `src/` and `../armv81m_opt/src/` into the +production backend. **Warning:** This backend is still in active development and has not yet undergone the same level of review as the rest of the code. Use at your own risk! diff --git a/dev/fips202/armv81m/mve_x1.h b/dev/fips202/armv81m/mve_x1.h new file mode 100644 index 0000000000..ba921ea756 --- /dev/null +++ b/dev/fips202/armv81m/mve_x1.h @@ -0,0 +1,65 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +#ifndef MLD_DEV_FIPS202_ARMV81M_MVE_X1_H +#define MLD_DEV_FIPS202_ARMV81M_MVE_X1_H + +#define MLD_FIPS202_NATIVE_ARMV81M + +/* Part of backend API */ +#define MLD_USE_NATIVE_FIPS202_X1 +#define MLD_USE_NATIVE_FIPS202_X1_XOR_BYTES +#define MLD_USE_NATIVE_FIPS202_X1_EXTRACT_BYTES +/* Guard for assembly files */ +#define MLD_FIPS202_ARMV81M_NEED_X1 + +#if !defined(__ASSEMBLER__) +#include "../api.h" + +#define mld_keccak_f1600_x1_native_impl \ + MLD_NAMESPACE(keccak_f1600_x1_native_impl) +int mld_keccak_f1600_x1_native_impl(uint64_t *state); + +MLD_MUST_CHECK_RETURN_VALUE +static MLD_INLINE int mld_keccak_f1600_x1_native(uint64_t *state) +{ + return mld_keccak_f1600_x1_native_impl(state); +} + +#define mld_keccakf1600_xor_bytes_x1_native_impl \ + MLD_NAMESPACE(keccakf1600_xor_bytes_x1_native_impl) +int mld_keccakf1600_xor_bytes_x1_native_impl(uint64_t *state, + const uint8_t *data, + unsigned offset, unsigned length); + +MLD_MUST_CHECK_RETURN_VALUE +static MLD_INLINE int mld_keccakf1600_xor_bytes_x1_native(uint64_t *state, + const uint8_t *data, + unsigned offset, + unsigned length) +{ + return mld_keccakf1600_xor_bytes_x1_native_impl(state, data, offset, length); +} + +#define mld_keccakf1600_extract_bytes_x1_native_impl \ + MLD_NAMESPACE(keccakf1600_extract_bytes_x1_native_impl) +int mld_keccakf1600_extract_bytes_x1_native_impl(uint64_t *state, uint8_t *data, + unsigned offset, + unsigned length); + +MLD_MUST_CHECK_RETURN_VALUE +static MLD_INLINE int mld_keccakf1600_extract_bytes_x1_native(uint64_t *state, + uint8_t *data, + unsigned offset, + unsigned length) +{ + return mld_keccakf1600_extract_bytes_x1_native_impl(state, data, offset, + length); +} + +#endif /* !__ASSEMBLER__ */ + +#endif /* !MLD_DEV_FIPS202_ARMV81M_MVE_X1_H */ diff --git a/dev/fips202/armv81m_clean/src/keccak_f1600_x1_armv81m.S b/dev/fips202/armv81m_clean/src/keccak_f1600_x1_armv81m.S new file mode 100644 index 0000000000..a8308a0679 --- /dev/null +++ b/dev/fips202/armv81m_clean/src/keccak_f1600_x1_armv81m.S @@ -0,0 +1,1113 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* References + * ========== + * + * - [ADOMNICAI23] + * An update on Keccak performance on ARMv7-M + * Alexandre Adomnicai + * https://eprint.iacr.org/2023/773 + * + * - [SLOTHYM7] + * Enabling Microarchitectural Agility: Taking ML-KEM and ML-DSA from + * Cortex-M4 to M7 with SLOTHY + * Abdulrahman, Kannwischer, Lim + * https://eprint.iacr.org/2025/366 + * + * - [XKCP] + * eXtended Keccak Code Package + * Bertoni, Daemen, Peeters, Van Assche, Van Keer + * https://github.com/XKCP/XKCP + */ + +/* + * XKCP-derived portions carry the following CC0-1.0 dedication: + * + * Implementation by the Keccak, Keyak and Ketje Teams, namely, Guido Bertoni, + * Joan Daemen, Michaël Peeters, Gilles Van Assche and Ronny Van Keer, hereby + * denoted as "the implementer". + * Additional optimizations by Alexandre Adomnicai. + * + * To the extent possible under law, the implementer has waived all copyright + * and related or neighboring rights to the source code in this file. + * https://creativecommons.org/publicdomain/zero/1.0/ + * + * The SLOTHY-derived portions are distributed under the MIT license: + * Copyright (c) 2022 Arm Limited + * Copyright (c) 2022 Hanno Becker + * Copyright (c) 2023 Amin Abdulrahman, Matthias Kannwischer + * See LICENSE for the full MIT license terms. + */ + +/* + * This file is derived from the SLOTHY 0.2.2 source + * examples/naive/armv7m/keccak/keccakf1600_adomnicai_m4.s. + * Its XKCP-derived portions are dedicated to the public domain under CC0-1.0; + * its SLOTHY-derived portions are distributed under the MIT license. + * + * Theta parity is formed with paired theta parity loads: each LDRD fetches + * the even and odd 32-bit components of a lane, then the following EOR + * operations consume that pair immediately. + */ + +/*yaml + Name: keccak_f1600_x1_armv7m_asm + Description: Armv8.1-M x1 Keccak-f[1600] permutation using the Adomnicai/XKCP bit-interleaved Armv7-M representation + Signature: void mld_keccak_f1600_x1_armv7m_asm(uint64_t state[25], const uint32_t rc[49]) + ABI: + Architecture: armv81m + CallingConvention: AAPCS32 + Features: [] + r0: + type: buffer + size_bytes: 200 + permissions: read/write + c_parameter: uint64_t state[25] + description: 8-byte-aligned bit-interleaved x1 state containing even/odd 32-bit halves for each Keccak lane + r1: + type: buffer + size_bytes: 196 + permissions: read + c_parameter: const uint32_t rc[49] + description: 24 bit-interleaved round constants followed by the 0xff loop terminator + test_bytes: + 192: 0xff + 193: 0x00 + 194: 0x00 + 195: 0x00 + Stack: + bytes: 64 + description: register preservation (40) + scalar scratch/intermediate state (24); no MVE/Q-register scratch +*/ + +/* + * AAPCS32 contract: preserves r4-r11 and sp; d8-d15 are not accessed. + * The caller-saved r0-r3, r12, and APSR condition flags may be clobbered. + * The 200-byte state buffer must be 8-byte aligned and is modified; the + * round-constant buffer is read-only. + */ + +/* + * This file is derived from the public domain implementation @[XKCP]. + * Optimizations for Armv7-M are described in @[ADOMNICAI23]. + * The clean round body is adapted from SLOTHY's MIT-licensed + * examples/naive/armv7m/keccak/keccakf1600_adomnicai_m7.s. + * Further optimizations using SLOTHY are described in @[SLOTHYM7]. + */ +/* WARNING: This implementation requires a little-endian Armv7-M or Armv8-M Mainline CPU. */ + +#include "../../../../common.h" +#if defined(MLD_FIPS202_ARMV81M_NEED_X1) && !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) +/* simpasm: header-end */ + + .thumb + .syntax unified +.text + + @ Credit: Henry S. Warren, Hacker's Delight, Addison-Wesley, 2002 +.macro toBitInterleaving x0, x1, s0, s1, t, over + + and \t,\x0,#0x55555555 + orr \t,\t,\t, LSR #1 + and \t,\t,#0x33333333 + orr \t,\t,\t, LSR #2 + and \t,\t,#0x0F0F0F0F + orr \t,\t,\t, LSR #4 + and \t,\t,#0x00FF00FF + bfi \t,\t,#8, #8 + .if \over != 0 + lsr \s0,\t, #8 + .else + eor \s0,\s0,\t, LSR #8 + .endif + + and \t,\x1,#0x55555555 + orr \t,\t,\t, LSR #1 + and \t,\t,#0x33333333 + orr \t,\t,\t, LSR #2 + and \t,\t,#0x0F0F0F0F + orr \t,\t,\t, LSR #4 + and \t,\t,#0x00FF00FF + orr \t,\t,\t, LSR #8 + eor \s0,\s0,\t, LSL #16 + + and \t,\x0,#0xAAAAAAAA + orr \t,\t,\t, LSL #1 + and \t,\t,#0xCCCCCCCC + orr \t,\t,\t, LSL #2 + and \t,\t,#0xF0F0F0F0 + orr \t,\t,\t, LSL #4 + and \t,\t,#0xFF00FF00 + orr \t,\t,\t, LSL #8 + .if \over != 0 + lsr \s1,\t, #16 + .else + eor \s1,\s1,\t, LSR #16 + .endif + + and \t,\x1,#0xAAAAAAAA + orr \t,\t,\t, LSL #1 + and \t,\t,#0xCCCCCCCC + orr \t,\t,\t, LSL #2 + and \t,\t,#0xF0F0F0F0 + orr \t,\t,\t, LSL #4 + and \t,\t,#0xFF00FF00 + orr \t,\t,\t, LSL #8 + bfc \t, #0, #16 + eors \s1,\s1,\t + .endm + + @ Credit: Henry S. Warren, Hacker's Delight, Addison-Wesley, 2002 +.macro fromBitInterleaving x0, x1, t + + movs \t, \x0 @ t = x0@ + bfi \x0, \x1, #16, #16 @ x0 = (x0 & 0x0000FFFF) | (x1 << 16)@ + bfc \x1, #0, #16 @ x1 = (t >> 16) | (x1 & 0xFFFF0000)@ + orr \x1, \x1, \t, LSR #16 + + eor \t, \x0, \x0, LSR #8 @ t = (x0 ^ (x0 >> 8)) & 0x0000FF00UL@ x0 = x0 ^ t ^ (t << 8)@ + and \t, #0x0000FF00 + eors \x0, \x0, \t + eor \x0, \x0, \t, LSL #8 + + eor \t, \x0, \x0, LSR #4 @ t = (x0 ^ (x0 >> 4)) & 0x00F000F0UL@ x0 = x0 ^ t ^ (t << 4)@ + and \t, #0x00F000F0 + eors \x0, \x0, \t + eor \x0, \x0, \t, LSL #4 + + eor \t, \x0, \x0, LSR #2 @ t = (x0 ^ (x0 >> 2)) & 0x0C0C0C0CUL@ x0 = x0 ^ t ^ (t << 2)@ + and \t, #0x0C0C0C0C + eors \x0, \x0, \t + eor \x0, \x0, \t, LSL #2 + + eor \t, \x0, \x0, LSR #1 @ t = (x0 ^ (x0 >> 1)) & 0x22222222UL@ x0 = x0 ^ t ^ (t << 1)@ + and \t, #0x22222222 + eors \x0, \x0, \t + eor \x0, \x0, \t, LSL #1 + + eor \t, \x1, \x1, LSR #8 @ t = (x1 ^ (x1 >> 8)) & 0x0000FF00UL@ x1 = x1 ^ t ^ (t << 8)@ + and \t, #0x0000FF00 + eors \x1, \x1, \t + eor \x1, \x1, \t, LSL #8 + + eor \t, \x1, \x1, LSR #4 @ t = (x1 ^ (x1 >> 4)) & 0x00F000F0UL@ x1 = x1 ^ t ^ (t << 4)@ + and \t, #0x00F000F0 + eors \x1, \x1, \t + eor \x1, \x1, \t, LSL #4 + + eor \t, \x1, \x1, LSR #2 @ t = (x1 ^ (x1 >> 2)) & 0x0C0C0C0CUL@ x1 = x1 ^ t ^ (t << 2)@ + and \t, #0x0C0C0C0C + eors \x1, \x1, \t + eor \x1, \x1, \t, LSL #2 + + eor \t, \x1, \x1, LSR #1 @ t = (x1 ^ (x1 >> 1)) & 0x22222222UL@ x1 = x1 ^ t ^ (t << 1)@ + and \t, #0x22222222 + eors \x1, \x1, \t + eor \x1, \x1, \t, LSL #1 + .endm + +@ --- offsets in state +.equ Aba0, 0*4 +.equ Aba1, 1*4 +.equ Abe0, 2*4 +.equ Abe1, 3*4 +.equ Abi0, 4*4 +.equ Abi1, 5*4 +.equ Abo0, 6*4 +.equ Abo1, 7*4 +.equ Abu0, 8*4 +.equ Abu1, 9*4 +.equ Aga0, 10*4 +.equ Aga1, 11*4 +.equ Age0, 12*4 +.equ Age1, 13*4 +.equ Agi0, 14*4 +.equ Agi1, 15*4 +.equ Ago0, 16*4 +.equ Ago1, 17*4 +.equ Agu0, 18*4 +.equ Agu1, 19*4 +.equ Aka0, 20*4 +.equ Aka1, 21*4 +.equ Ake0, 22*4 +.equ Ake1, 23*4 +.equ Aki0, 24*4 +.equ Aki1, 25*4 +.equ Ako0, 26*4 +.equ Ako1, 27*4 +.equ Aku0, 28*4 +.equ Aku1, 29*4 +.equ Ama0, 30*4 +.equ Ama1, 31*4 +.equ Ame0, 32*4 +.equ Ame1, 33*4 +.equ Ami0, 34*4 +.equ Ami1, 35*4 +.equ Amo0, 36*4 +.equ Amo1, 37*4 +.equ Amu0, 38*4 +.equ Amu1, 39*4 +.equ Asa0, 40*4 +.equ Asa1, 41*4 +.equ Ase0, 42*4 +.equ Ase1, 43*4 +.equ Asi0, 44*4 +.equ Asi1, 45*4 +.equ Aso0, 46*4 +.equ Aso1, 47*4 +.equ Asu0, 48*4 +.equ Asu1, 49*4 + +@ --- offsets on stack +.equ mDa0, 0*4 +.equ mDa1, 1*4 +.equ mDo0, 2*4 +.equ mDo1, 3*4 +.equ mDi0, 4*4 +.equ mRC , 5*4 +.equ mSize, 6*4 + +/****************************************************************************** + * Bitwise exclusive-OR where both operands are misaligned (i.e. src1 and src2 + * are rotated by rot1 and rot2, respectively). + * The output result is also misaligned (i.e. dst is rotated by rot1-rot2). + * - dst destination register + * - src1-src2 source registers + * - rot1-rot2 rotation values + *****************************************************************************/ +.macro eorror dst, src1, src2, rot1, rot2 +.if \rot1 >= \rot2 + eor \dst, \src1, \src2, ror #\rot1-\rot2 +.else + eor \dst, \src1, \src2, ror #32+\rot1-\rot2 +.endif +.endm + + +/****************************************************************************** + * Bit clear instruction where both operands are misaligned (i.e. src1 and src2 + * are rotated by rot1 and rot2, respectively). + * The output result is also misaligned (i.e. dst is rotated by rot1-rot2). + * - dst destination register + * - src1-src2 source registers + * - rot1-rot2 rotation values + *****************************************************************************/ +.macro bicror dst, src1, src2, rot1, rot2 +.if \rot1 >= \rot2 + bic \dst, \src1, \src2, ror #\rot1-\rot2 +.else + bic \dst, \src1, \src2, ror #32+\rot1-\rot2 +.endif +.endm + + +/****************************************************************************** + * Load 5 words from memory and XOR them all together. It is used to compute + * the parity columns for the Theta step. + * Note that all operands may be misaligned (i.e. rotated by a certain amount + * of bits), as well as the result. + * - dst destination register + * - src1-src5 source registers + * - rot1-rot5 rotation values + *****************************************************************************/ +.macro xor5 dst, src1, src2, src3, src4, src5, rot1, rot2, rot3, rot4, rot5 + ldr.w \dst, [r0, #\src1] // @slothy:reads=[r0\src1] + ldr.w r1, [r0, #\src2] // @slothy:reads=[r0\src2] + ldr.w r5, [r0, #\src3] // @slothy:reads=[r0\src3] + ldr r11, [r0, #\src4] // @slothy:reads=[r0\src4] + ldr r12, [r0, #\src5] // @slothy:reads=[r0\src5] + eorror \dst, \dst, r1, \rot1, \rot2 + eorror \dst, \dst, r5, \rot1, \rot3 + eorror \dst, \dst, r11, \rot1, \rot4 + eorror \dst, \dst, r12, \rot1, \rot5 +.endm + + +/****************************************************************************** + * Same as xor5, except that a previous result is stored on the stack after the + * loads from memory. This allows to have the str instruction for free. + * - dst destination register + * - src1-src5 source registers + * - rot1-rot5 rotation values + * - strreg register from previous calculations to be stored in memory + * - stradr register holding the address to store `prev` + * - strofs stack pointer memory offset for the str instruction + *****************************************************************************/ +.macro xor5str dst, src1, src2, src3, src4, src5, rot1, rot2, rot3, rot4, rot5, strreg, stradr, strofs + ldr.w \dst, [r0, #\src1] // @slothy:reads=[r0\src1] + ldr.w r1, [r0, #\src2] // @slothy:reads=[r0\src2] + ldr.w r5, [r0, #\src3] // @slothy:reads=[r0\src3] + ldr r11, [r0, #\src4] // @slothy:reads=[r0\src4] + ldr r12, [r0, #\src5] // @slothy:reads=[r0\src5] + str.w \strreg, [\stradr, #\strofs] // @slothy:writes=[\stradr\strofs] + eorror \dst, \dst, r1, \rot1, \rot2 + eorror \dst, \dst, r5, \rot1, \rot3 + eorror \dst, \dst, r11, \rot1, \rot4 + eorror \dst, \dst, r12, \rot1, \rot5 +.endm + + +/****************************************************************************** + * Load an adjacent bit-interleaved pair with optional swap. + * + * base must be the lower address of the adjacent pair, normally Xxx0. + *****************************************************************************/ +.macro ldrd_pair_select lo, hi, base, base_hi, swap +.if \swap == 0 + ldrd \lo, \hi, [r0, #\base] // @slothy:reads=[r0\base,r0\base_hi] +.else + ldrd \hi, \lo, [r0, #\base] // @slothy:reads=[r0\base,r0\base_hi] +.endif +.endm + + +/****************************************************************************** + * Compute two xor5 parities together using LDRD. + * + * d0/d1 are independent parity accumulators. t0/t1/u0/u1 are explicit + * scratch registers. Each accumulator keeps the same rotation semantics as a + * standalone xor5 invocation. + *****************************************************************************/ +.macro xor5pair d0, d1, t0, t1, u0, u1, \ + base1, base1_hi, swap1, base2, base2_hi, swap2, base3, base3_hi, swap3, base4, base4_hi, swap4, base5, base5_hi, swap5, \ + r01, r02, r03, r04, r05, \ + r11, r12, r13, r14, r15 + ldrd_pair_select \d0, \d1, \base1, \base1_hi, \swap1 + ldrd_pair_select \t0, \t1, \base2, \base2_hi, \swap2 + eorror \d0, \d0, \t0, \r01, \r02 + eorror \d1, \d1, \t1, \r11, \r12 + ldrd_pair_select \t0, \t1, \base3, \base3_hi, \swap3 + eorror \d0, \d0, \t0, \r01, \r03 + eorror \d1, \d1, \t1, \r11, \r13 + ldrd_pair_select \t0, \t1, \base4, \base4_hi, \swap4 + eorror \d0, \d0, \t0, \r01, \r04 + eorror \d1, \d1, \t1, \r11, \r14 + ldrd_pair_select \t0, \t1, \base5, \base5_hi, \swap5 + eorror \d0, \d0, \t0, \r01, \r05 + eorror \d1, \d1, \t1, \r11, \r15 +.endm + + +/****************************************************************************** + * Exclusive-OR where the 2nd operand is rotated by 1 bit to the left. + * - dst destination register + * - src1-src2 source registers + * - rot differential rotation btw src1 & src2 (i.e. rot=rot1-rot2) + *****************************************************************************/ +.macro xorrol dst, src1, src2, rot + eor \dst, \src1, \src2, ror #\rot-1 +.endm + + +/****************************************************************************** + * Bitslice implementation of the Chi step with misaligned operands. + * - resofs memory offset within the internal state to store the result + * - src1-src3 source registers + * - rot1-rot3 rotation values + *****************************************************************************/ +.macro xandnotlazystr resofs, src1, src2, src3, rot1, rot2, rot3 + bicror r1, \src3, \src2, \rot3, \rot2 + eorror r1, r1, \src1, \rot3, \rot1 + str.w r1, [r0, #\resofs] // @slothy:writes=[r0\resofs] +.endm + + +/****************************************************************************** + * Same as xandnotlazystr but without the str instruction which will be carried + * out later in order to take advantage of future ldr instructions. + * - src1-src3 source registers + * - rot1-rot3 rotation values + *****************************************************************************/ +.macro xandnotlazy src1, src2, src3, rot1, rot2, rot3 + bicror r1, \src3, \src2, \rot3, \rot2 + eorror r1, r1, \src1, \rot3, \rot1 +.endm + + +/****************************************************************************** + * Same as xandnotlazystr with an additional rotation in order to explictly + * compute the Rho step. It is useful in KeccakRound3 in order to return to the + * classical representation every 4 rounds. + * - resofs memory offset within the internal state to store the result + * - src1-src3 source registers + * - rot1-rot3 rotation values + *****************************************************************************/ +.macro xandnotstr resofs, src1, src2, src3, rot1, rot2, rot3 + bicror r1, \src3, \src2, \rot3, \rot2 + eorror r1, r1, \src1, \rot3, \rot1 +.if \rot3 > 0 + ror r1, r1, #32-\rot3 +.endif + str.w r1, [r0, #\resofs] // @slothy:writes=[r0\resofs] +.endm + + +/****************************************************************************** + * Same as xandnotstr but without the str instruction which will be carried + * out later in order to take advantage of future ldr instructions. + * - src1-src3 source registers + * - rot1-rot3 rotation values + *****************************************************************************/ +.macro xandnot src1, src2, src3, rot1, rot2, rot3 + bicror r1, \src3, \src2, \rot3, \rot2 + eorror r1, r1, \src1, \rot3, \rot1 +.if \rot3 > 0 + ror r1, r1, #32-\rot3 +.endif +.endm + + +/****************************************************************************** + * Same as xandnot followed by the Iota step. Note that the source registers + * are not specified since they are always r3, r4 and r5. + * - out output reg (useful to store the result in the next round) + * - rot2-rot3 rotation values + * - rcofs memory offset to load the round constant + * - last Boolean to indicate whether its the last round of the + * quadruple round routine + *****************************************************************************/ +.macro xandnotiota out, rot3, rot2, rcofs, last + bicror r5, r5, r4, \rot3, \rot2 + ldr r1, [sp, #mRC] // @slothy:reads=[spmRC] + ldr r4, [r1, #\rcofs] // @slothy:reads=[r1\rcofs] +.if \last == 1 + ldr r7, [r1, #32]! // @slothy:reads=[r132] + str r1, [sp, #mRC] // @slothy:writes=[spmRC] + cmp r7, #0xFF +.endif +.if \rot3 > 0 + eor r3, r3, r5, ror #32-\rot3 +.else + eor.w r3, r3, r5 +.endif + eor.w \out, r4, r3 +.endm + + +/****************************************************************************** + * Add the parity bits to the state registers r3-r7. If the state registers are + * not properly aligned due to previous lazy rotations, use the barrel shifter + * to fix the misalignment when adding the parity bits. + * - par1-par5 registers containing the parity bits + * - dly1-dly5 rotation values to compute the (delayed) Rho step + *****************************************************************************/ +.macro addparity par1, dly1, par2, dly2, par3, dly3, par4, dly4, par5, dly5 +.if \dly1 > 0 + eor r3, \par1, r3, ror #32-\dly1 +.else + eor.w r3, \par1, r3 +.endif +.if \dly2 > 0 + eor r4, \par2, r4, ror #32-\dly2 +.else + eor.w r4, \par2, r4 +.endif +.if \dly3 > 0 + eor r5, \par3, r5, ror #32-\dly3 +.else + eor.w r5, \par3, r5 +.endif +.if \dly4 > 0 + eor r6, \par4, r6, ror #32-\dly4 +.else + eor.w r6, \par4, r6 +.endif +.if \dly5 > 0 + eor r7, \par5, r7, ror #32-\dly5 +.else + eor.w r7, \par5, r7 +.endif +.endm + + +/****************************************************************************** + * Apply Theta, Pi, Chi and Iota steps to half a plane (i.e. 5 32-bit words) of + * the internal state. + * Note that the Rho step is calculated if and only if \lazy == 0, otherwise it + * is delayed until the next round using ''lazy reductions'' thanks to the + * inline barrel shifter. + * - src1-src5 source registers + * - par1-par5 registers containing the parity bits + * - rot2-rot5 rotation values to compute the current Rho step + * - dly1-dly5 rotation values to compute the delayed Rho step + * - prev register from previous calculations to be stored in memory + * - strofs stack pointer memory offset for the str instruction + * - reg output reg related to the Iota step (to be stored later) + *****************************************************************************/ +.macro KeccakThetaRhoPiChiIota src1, par1, dly1, \ + src2, par2, rot2, dly2, \ + src3, par3, rot3, dly3, \ + src4, par4, rot4, dly4, \ + src5, par5, rot5, dly5, \ + ofs, last, lazy, strofs, reg + ldr.w r3, [r0, #\src1] // @slothy:reads=[r0\src1] + ldr r4, [r0, #\src2] // @slothy:reads=[r0\src2] + ldr r5, [r0, #\src3] // @slothy:reads=[r0\src3] + ldr r6, [r0, #\src4] // @slothy:reads=[r0\src4] + ldr r7, [r0, #\src5] // @slothy:reads=[r0\src5] + str.w r1, [r0, #\strofs] // @slothy:writes=[r0\strofs] + addparity \par1, \dly1, \par2, \dly2, \par3, \dly3, \par4, \dly4, \par5, \dly5 +.if \lazy == 1 + xandnotlazystr \src2, r4, r5, r6, \rot2, \rot3, \rot4 + xandnotlazystr \src3, r5, r6, r7, \rot3, \rot4, \rot5 + xandnotlazystr \src4, r6, r7, r3, \rot4, \rot5, 0 + xandnotlazystr \src5, r7, r3, r4, \rot5, 0, \rot2 +.else + xandnotstr \src2, r4, r5, r6, \rot2, \rot3, \rot4 + xandnotstr \src3, r5, r6, r7, \rot3, \rot4, \rot5 + xandnotstr \src4, r6, r7, r3, \rot4, \rot5, 0 + xandnotstr \src5, r7, r3, r4, \rot5, 0, \rot2 +.endif + xandnotiota \reg, \rot3, \rot2, \ofs, \last +.endm + + +/****************************************************************************** + * Apply Theta, Pi, and Chi steps to half a plane (i.e. 5 32-bit words) of the + * internal state. + * Note that the Rho step is calculated if and only if \lazy == 0, otherwise it + * is delayed until the next round using ''lazy reductions'' thanks to the + * inline barrel shifter. + * - src1-src5 source registers + * - dst1-dst5 memory offsets to store the output registers + * - par1-par5 registers containing the parity bits + * - rot2-rot5 rotation values to compute the current Rho step + * - dly1-dly5 rotation values to compute the delayed Rho step + * - lazy Boolean to indicate whether lazy rotations are used or not + * - strofs stack pointer memory offset to store the last output of the + * previous round. + *****************************************************************************/ +.macro KeccakThetaRhoPiChi src1, dst1, par1, rot1, dly1, \ + src2, dst2, par2, rot2, dly2, \ + src3, dst3, par3, rot3, dly3, \ + src4, dst4, par4, rot4, dly4, \ + src5, dst5, par5, rot5, dly5, \ + lazy, strofs + ldr.w r3, [r0, #\src1] // @slothy:reads=[r0\src1] + ldr.w r4, [r0, #\src2] // @slothy:reads=[r0\src2] + ldr.w r5, [r0, #\src3] // @slothy:reads=[r0\src3] + ldr.w r6, [r0, #\src4] // @slothy:reads=[r0\src4] + ldr.w r7, [r0, #\src5] // @slothy:reads=[r0\src5] + str.w r1, [r0, #\strofs] // @slothy:writes=[r0\strofs] + addparity \par1, \dly1, \par2, \dly2, \par3, \dly3, \par4, \dly4, \par5, \dly5 +.if \lazy == 1 + xandnotlazystr \dst1, r3, r4, r5, \rot1, \rot2, \rot3 + xandnotlazystr \dst2, r4, r5, r6, \rot2, \rot3, \rot4 + xandnotlazystr \dst3, r5, r6, r7, \rot3, \rot4, \rot5 + xandnotlazystr \dst4, r6, r7, r3, \rot4, \rot5, \rot1 + xandnotlazy r7, r3, r4, \rot5, \rot1, \rot2 +.else + xandnotstr \dst1, r3, r4, r5, \rot1, \rot2, \rot3 + xandnotstr \dst2, r4, r5, r6, \rot2, \rot3, \rot4 + xandnotstr \dst3, r5, r6, r7, \rot3, \rot4, \rot5 + xandnotstr \dst4, r6, r7, r3, \rot4, \rot5, \rot1 + xandnot r7, r3, r4, \rot5, \rot1, \rot2 +.endif +.endm + +.macro KeccakThetaRhoPiChiSkipStore src1, dst1, par1, rot1, dly1, \ + src2, dst2, par2, rot2, dly2, \ + src3, dst3, par3, rot3, dly3, \ + src4, dst4, par4, rot4, dly4, \ + src5, dst5, par5, rot5, dly5, \ + lazy, strofs + ldr.w r3, [r0, #\src1] // @slothy:reads=[r0\src1] + ldr.w r4, [r0, #\src2] // @slothy:reads=[r0\src2] + ldr.w r5, [r0, #\src3] // @slothy:reads=[r0\src3] + ldr.w r6, [r0, #\src4] // @slothy:reads=[r0\src4] + ldr.w r7, [r0, #\src5] // @slothy:reads=[r0\src5] + addparity \par1, \dly1, \par2, \dly2, \par3, \dly3, \par4, \dly4, \par5, \dly5 +.if \lazy == 1 + xandnotlazystr \dst1, r3, r4, r5, \rot1, \rot2, \rot3 + xandnotlazystr \dst2, r4, r5, r6, \rot2, \rot3, \rot4 + xandnotlazystr \dst3, r5, r6, r7, \rot3, \rot4, \rot5 + xandnotlazystr \dst4, r6, r7, r3, \rot4, \rot5, \rot1 + xandnotlazy r7, r3, r4, \rot5, \rot1, \rot2 +.else + xandnotstr \dst1, r3, r4, r5, \rot1, \rot2, \rot3 + xandnotstr \dst2, r4, r5, r6, \rot2, \rot3, \rot4 + xandnotstr \dst3, r5, r6, r7, \rot3, \rot4, \rot5 + xandnotstr \dst4, r6, r7, r3, \rot4, \rot5, \rot1 + xandnot r7, r3, r4, \rot5, \rot1, \rot2 +.endif +.endm + +/****************************************************************************** + * 1st round of the 4 unrolled rounds routine due to in-place processing. + * At the beginning of such rounds, the internal state is expected to match the + * classical representation (i.e. without transition and no delayed Rho step). + *****************************************************************************/ +.macro KeccakRound0 + xor5pair r3, r4, r1, r5, r11, r12, \ + Abu0, Abu1, 0, Agu0, Agu1, 0, Aku0, Aku1, 0, Amu0, Amu1, 0, Asu0, Asu1, 0, \ + 0, 0, 0, 0, 0, \ + 0, 0, 0, 0, 0 + xor5pair r7, r8, r1, r5, r11, r12, \ + Abe0, Abe1, 0, Age0, Age1, 0, Ake0, Ake1, 0, Ame0, Ame1, 0, Ase0, Ase1, 0, \ + 0, 0, 0, 0, 0, \ + 0, 0, 0, 0, 0 + xorrol r6, r3, r8, 32 + str r6, [sp, #mDa0] // @slothy:writes=[spmDa0] + eor r6, r4, r7 + str r6, [sp, #mDa1] // @slothy:writes=[spmDa1] + xor5pair r1, r5, r6, r10, r11, r12, \ + Abi0, Abi1, 0, Agi0, Agi1, 0, Aki0, Aki1, 0, Ami0, Ami1, 0, Asi0, Asi1, 0, \ + 0, 0, 0, 0, 0, \ + 0, 0, 0, 0, 0 + xorrol r9, r1, r4, 32 + str r9, [sp, #mDo0] // @slothy:writes=[spmDo0] + eor r6, r3, r5 + str r6, [sp, #mDo1] // @slothy:writes=[spmDo1] + xor5pair r3, r4, r6, r10, r11, r12, \ + Abo0, Abo1, 0, Ago0, Ago1, 0, Ako0, Ako1, 0, Amo0, Amo1, 0, Aso0, Aso1, 0, \ + 0, 0, 0, 0, 0, \ + 0, 0, 0, 0, 0 + eor r2, r8, r3 + xorrol r6, r7, r4, 32 + str r6, [sp, #mDi0] // @slothy:writes=[spmDi0] + xor5pair r7, r6, r10, r11, r12, r14, \ + Aba0, Aba1, 0, Aga0, Aga1, 0, Aka0, Aka1, 0, Ama0, Ama1, 0, Asa0, Asa1, 0, \ + 0, 0, 0, 0, 0, \ + 0, 0, 0, 0, 0 + xorrol r10, r7, r5, 32 + eor r11, r6, r1 + xorrol r12, r3, r6, 32 + eor r14, r4, r7 + ldr r8, [sp, #mDa1] // @slothy:reads=[spmDa1] + KeccakThetaRhoPiChiSkipStore Abo0, Aka1, r9, 14, 0, \ + Agu0, Ame1, r12, 10, 0, \ + Aka1, Asi1, r8, 2, 0, \ + Ame1, Abo0, r11, 23, 0, \ + Asi1, Agu0, r2, 31, 0, \ + 1, Aka1 + KeccakThetaRhoPiChi Abe0, Asa1, r10, 0, 0, \ + Agi1, Abe0, r2, 3, 0, \ + Ako0, Agi1, r9, 12, 0, \ + Amu1, Ako0, r14, 4, 0, \ + Asa1, Amu1, r8, 9, 0, \ + 1, Agu0 + ldr r8, [sp, #mDa0] // @slothy:reads=[spmDa0] + KeccakThetaRhoPiChi Abu1, Aga0, r14, 14, 0, \ + Aga0, Ake0, r8, 18, 0, \ + Ake0, Ami1, r10, 5, 0, \ + Ami1, Aso0, r2, 8, 0, \ + Aso0, Abu1, r9, 28, 0, \ + 1, Amu1 + KeccakThetaRhoPiChi Abi1, Ama0, r2, 31, 0, \ + Ago0, Ase1, r9, 27, 0, \ + Aku0, Abi1, r12, 19, 0, \ + Ama0, Ago0, r8, 20, 0, \ + Ase1, Aku0, r11, 1, 0, \ + 1, Abu1 + ldr r9, [sp, #mDo1] // @slothy:reads=[spmDo1] + KeccakThetaRhoPiChiIota Aba0, r8, 0, \ + Age0, r10, 22, 0, \ + Aki1, r2, 22, 0, \ + Amo1, r9, 11, 0, \ + Asu0, r12, 7, 0, \ + 0, 0, 1, Aku0, r1 + ldr r2, [sp, #mDi0] // @slothy:reads=[spmDi0] + KeccakThetaRhoPiChi Abo1, Aka0, r9, 14, 0, \ + Agu1, Ame0, r14, 10, 0, \ + Aka0, Asi0, r8, 1, 0, \ + Ame0, Abo1, r10, 22, 0, \ + Asi0, Agu1, r2, 30, 0, \ + 1, Aba0 + KeccakThetaRhoPiChi Abe1, Asa0, r11, 1, 0, \ + Agi0, Abe1, r2, 3, 0, \ + Ako1, Agi0, r9, 13, 0, \ + Amu0, Ako1, r12, 4, 0, \ + Asa0, Amu0, r8, 9, 0, \ + 1, Agu1 + ldr r8, [sp, #mDa1] // @slothy:reads=[spmDa1] + KeccakThetaRhoPiChi Abu0, Aga1, r12, 13, 0, \ + Aga1, Ake1, r8, 18, 0, \ + Ake1, Ami0, r11, 5, 0, \ + Ami0, Aso1, r2, 7, 0, \ + Aso1, Abu0, r9, 28, 0, \ + 1, Amu0 + KeccakThetaRhoPiChi Abi0, Ama1, r2, 31, 0, \ + Ago1, Ase0, r9, 28, 0, \ + Aku1, Abi0, r14, 20, 0, \ + Ama1, Ago1, r8, 21, 0, \ + Ase0, Aku1, r10, 1, 0, \ + 1, Abu0 + ldr r9, [sp, #mDo0] // @slothy:reads=[spmDo0] + KeccakThetaRhoPiChiIota Aba1, r8, 0, \ + Age1, r11, 22, 0, \ + Aki0, r2, 21, 0, \ + Amo0, r9, 10, 0, \ + Asu1, r14, 7, 0, \ + 4, 0, 1, Aku1, r14 +.endm + + + +/****************************************************************************** + * 2nd round of the 4 unrolled rounds routine due to in-place processing. + *****************************************************************************/ +.macro KeccakRound1 + str r14, [r0, #Aba1] // @slothy:writes=[r0Aba1] + xor5pair r3, r4, r1, r5, r11, r12, \ + Asu0, Asu1, 0, Agu0, Agu1, 0, Amu0, Amu1, 0, Abu0, Abu1, 1, Aku0, Aku1, 1, \ + 22, 10, 3, 18, 28, \ + 22, 10, 3, 18, 27 + xor5pair r7, r8, r1, r5, r11, r12, \ + Age0, Age1, 0, Ame0, Ame1, 1, Abe0, Abe1, 1, Ake0, Ake1, 0, Ase0, Ase1, 0, \ + 11, 23, 4, 8, 21, \ + 10, 22, 4, 7, 20 + ror r3, r3, #32-22 + ror r7, r7, #32-11 + xorrol r6, r3, r8, 32-10 + str r6, [sp, #mDa0] // @slothy:writes=[spmDa0] + eor r10, r7, r4, ror #32-22 + str r10, [sp, #mDa1] // @slothy:writes=[spmDa1] + xor5pair r1, r5, r6, r10, r11, r12, \ + Aki0, Aki1, 1, Asi0, Asi1, 1, Agi0, Agi1, 0, Ami0, Ami1, 1, Abi0, Abi1, 0, \ + 7, 31, 9, 28, 1, \ + 7, 30, 9, 28, 1 + ror r1, r1, #32-7 + eor r6, r3, r5, ror #32-7 + str r6, [sp, #mDo1] // @slothy:writes=[spmDo1] + xorrol r9, r1, r4, 32-22 + str r9, [sp, #mDo0] // @slothy:writes=[spmDo0] + xor5pair r3, r4, r6, r10, r11, r12, \ + Amo0, Amo1, 1, Abo0, Abo1, 0, Ako0, Ako1, 1, Aso0, Aso1, 0, Ago0, Ago1, 1, \ + 0, 14, 1, 14, 31, \ + 0, 14, 0, 13, 31 + eor r2, r3, r8, ror #32-10 + xorrol r6, r7, r4, 32 + str r6, [sp, #mDi0] // @slothy:writes=[spmDi0] + xor5pair r7, r6, r10, r11, r12, r14, \ + Aba0, Aba1, 0, Aka0, Aka1, 1, Asa0, Asa1, 0, Aga0, Aga1, 0, Ama0, Ama1, 1, \ + 0, 2, 13, 5, 20, \ + 0, 1, 12, 5, 19 + xorrol r10, r7, r5, 32-7 + eor r11, r6, r1 + xorrol r12, r3, r6, 32 + eor r14, r4, r7 + ldr r8, [sp, #mDa1] // @slothy:reads=[spmDa1] + KeccakThetaRhoPiChiSkipStore Amo1, Asa1, r9, 14, 0, \ + Agu0, Ake1, r12, 10, 10, \ + Asa1, Abi1, r8, 2, 12, \ + Ake1, Amo1, r11, 23, 7, \ + Abi1, Agu0, r2, 31, 1, \ + 1, Asa1 + KeccakThetaRhoPiChi Age0, Ama0, r10, 0, 11, \ + Asi0, Age0, r2, 3, 30, \ + Ako1, Asi0, r9, 12, 1, \ + Abu0, Ako1, r14, 4, 18, \ + Ama0, Abu0, r8, 9, 19, \ + 1, Agu0 + ldr r8, [sp, #mDa0] // @slothy:reads=[spmDa0] + KeccakThetaRhoPiChi Asu1, Aka1, r14, 14, 22, \ + Aka1, Abe1, r8, 18, 2, \ + Abe1, Ami0, r10, 5, 4, \ + Ami0, Ago1, r2, 8, 28, \ + Ago1, Asu1, r9, 28, 31, \ + 1, Abu0 + KeccakThetaRhoPiChi Aki0, Aga0, r2, 31, 7, \ + Abo0, Ase1, r9, 27, 14, \ + Amu0, Aki0, r12, 19, 3, \ + Aga0, Abo0, r8, 20, 5, \ + Ase1, Amu0, r11, 1, 20, \ + 1, Asu1 + ldr r9, [sp, #mDo1] // @slothy:reads=[spmDo1] + KeccakThetaRhoPiChiIota Aba0, r8, 0, \ + Ame1, r10, 22, 23, \ + Agi1, r2, 22, 9, \ + Aso1, r9, 11, 13, \ + Aku1, r12, 7, 28, \ + 8, 0, 1, Amu0, r1 + ldr r2, [sp, #mDi0] // @slothy:reads=[spmDi0] + KeccakThetaRhoPiChi Amo0, Asa0, r9, 14, 0, \ + Agu1, Ake0, r14, 10, 10, \ + Asa0, Abi0, r8, 1, 13, \ + Ake0, Amo0, r10, 22, 8, \ + Abi0, Agu1, r2, 30, 1, \ + 1, Aba0 + KeccakThetaRhoPiChi Age1, Ama1, r11, 1, 10, \ + Asi1, Age1, r2, 3, 31, \ + Ako0, Asi1, r9, 13, 0, \ + Abu1, Ako0, r12, 4, 18, \ + Ama1, Abu1, r8, 9, 20, \ + 1, Agu1 + ldr r8, [sp, #mDa1] // @slothy:reads=[spmDa1] + KeccakThetaRhoPiChi Asu0, Aka0, r12, 13, 22, \ + Aka0, Abe0, r8, 18, 1, \ + Abe0, Ami1, r11, 5, 4, \ + Ami1, Ago0, r2, 7, 28, \ + Ago0, Asu0, r9, 28, 31, \ + 1, Abu1 + KeccakThetaRhoPiChi Aki1, Aga1, r2, 31, 7, \ + Abo1, Ase0, r9, 28, 14, \ + Amu1, Aki1, r14, 20, 3, \ + Aga1, Abo1, r8, 21, 5, \ + Ase0, Amu1, r10, 1, 21, \ + 1, Asu0 + ldr r9, [sp, #mDo0] // @slothy:reads=[spmDo0] + KeccakThetaRhoPiChiIota Aba1, r8, 0, \ + Ame0, r11, 22, 22, \ + Agi0, r2, 21, 9, \ + Aso0, r9, 10, 14, \ + Aku0, r14, 7, 27, \ + 12, 0, 1, Amu1, r14 +.endm + +/****************************************************************************** + * 3rd round of the 4 unrolled rounds routine due to in-place processing. + *****************************************************************************/ +.macro KeccakRound2 + str r14, [r0, #Aba1] // @slothy:writes=[r0Aba1] + xor5pair r3, r4, r1, r5, r11, r12, \ + Aku0, Aku1, 1, Agu0, Agu1, 0, Abu0, Abu1, 1, Asu0, Asu1, 1, Amu0, Amu1, 1, \ + 22, 10, 3, 18, 28, \ + 22, 10, 3, 18, 27 + xor5pair r7, r8, r1, r5, r11, r12, \ + Ame0, Ame1, 1, Ake0, Ake1, 1, Age0, Age1, 1, Abe0, Abe1, 1, Ase0, Ase1, 0, \ + 11, 23, 4, 8, 21, \ + 10, 22, 4, 7, 20 + ror r3, r3, #32-22 + ror r7, r7, #32-11 + xorrol r6, r3, r8, 32-10 + str r6, [sp, #mDa0] // @slothy:writes=[spmDa0] + eor r10, r7, r4, ror #32-22 + str r10, [sp, #mDa1] // @slothy:writes=[spmDa1] + xor5pair r1, r5, r6, r10, r11, r12, \ + Agi0, Agi1, 1, Abi0, Abi1, 1, Asi0, Asi1, 1, Ami0, Ami1, 0, Aki0, Aki1, 1, \ + 7, 31, 9, 28, 1, \ + 7, 30, 9, 28, 1 + ror r1, r1, #32-7 + eor r6, r3, r5, ror #32-7 + str r6, [sp, #mDo1] // @slothy:writes=[spmDo1] + xorrol r9, r1, r4, 32-22 + str r9, [sp, #mDo0] // @slothy:writes=[spmDo0] + xor5pair r3, r4, r6, r10, r11, r12, \ + Aso0, Aso1, 1, Amo0, Amo1, 1, Ako0, Ako1, 0, Ago0, Ago1, 1, Abo0, Abo1, 1, \ + 0, 14, 1, 14, 31, \ + 0, 14, 0, 13, 31 + eor r2, r3, r8, ror #32-10 + xorrol r6, r7, r4, 32 + str r6, [sp, #mDi0] // @slothy:writes=[spmDi0] + xor5pair r7, r6, r10, r11, r12, r14, \ + Aba0, Aba1, 0, Asa0, Asa1, 1, Ama0, Ama1, 1, Aka0, Aka1, 1, Aga0, Aga1, 1, \ + 0, 2, 13, 5, 20, \ + 0, 1, 12, 5, 19 + xorrol r10, r7, r5, 32-7 + eor r11, r6, r1 + xorrol r12, r3, r6, 32 + eor r14, r4, r7 + ldr r8, [sp, #mDa1] // @slothy:reads=[spmDa1] + KeccakThetaRhoPiChiSkipStore Aso1, Ama0, r9, 14, 0, \ + Agu0, Abe0, r12, 10, 10, \ + Ama0, Aki0, r8, 2, 12, \ + Abe0, Aso1, r11, 23, 7, \ + Aki0, Agu0, r2, 31, 1, \ + 1, Ama0 + KeccakThetaRhoPiChi Ame1, Aga0, r10, 0, 11, \ + Abi0, Ame1, r2, 3, 30, \ + Ako0, Abi0, r9, 12, 1, \ + Asu0, Ako0, r14, 4, 18, \ + Aga0, Asu0, r8, 9, 19, \ + 1, Agu0 + ldr r8, [sp, #mDa0] // @slothy:reads=[spmDa0] + KeccakThetaRhoPiChi Aku0, Asa1, r14, 14, 22, \ + Asa1, Age1, r8, 18, 2, \ + Age1, Ami1, r10, 5, 4, \ + Ami1, Abo1, r2, 8, 28, \ + Abo1, Aku0, r9, 28, 31, \ + 1, Asu0 + KeccakThetaRhoPiChi Agi0, Aka1, r2, 31, 7, \ + Amo1, Ase1, r9, 27, 14, \ + Abu1, Agi0, r12, 19, 3, \ + Aka1, Amo1, r8, 20, 5, \ + Ase1, Abu1, r11, 1, 20, \ + 1, Aku0 + ldr r9, [sp, #mDo1] // @slothy:reads=[spmDo1] + KeccakThetaRhoPiChiIota Aba0, r8, 0, \ + Ake1, r10,22, 23, \ + Asi0, r2, 22, 9, \ + Ago0, r9, 11, 13, \ + Amu1, r12, 7, 28, \ + 16, 0, 1, Abu1, r1 + ldr r2, [sp, #mDi0] // @slothy:reads=[spmDi0] + KeccakThetaRhoPiChi Aso0, Ama1, r9, 14, 0, \ + Agu1, Abe1, r14, 10, 10, \ + Ama1, Aki1, r8, 1, 13, \ + Abe1, Aso0, r10, 22, 8, \ + Aki1, Agu1, r2, 30, 1, \ + 1, Aba0 + KeccakThetaRhoPiChi Ame0, Aga1, r11, 1, 10, \ + Abi1, Ame0, r2, 3, 31, \ + Ako1, Abi1, r9, 13, 0, \ + Asu1, Ako1, r12, 4, 18, \ + Aga1, Asu1, r8, 9, 20, \ + 1, Agu1 + ldr r8, [sp, #mDa1] // @slothy:reads=[spmDa1] + KeccakThetaRhoPiChi Aku1, Asa0, r12, 13, 22, \ + Asa0, Age0, r8, 18, 1, \ + Age0, Ami0, r11, 5, 4, \ + Ami0, Abo0, r2, 7, 28, \ + Abo0, Aku1, r9, 28, 31, \ + 1, Asu1 + KeccakThetaRhoPiChi Agi1, Aka0, r2, 31, 7, \ + Amo0, Ase0, r9, 28, 14, \ + Abu0, Agi1, r14, 20, 3, \ + Aka0, Amo0, r8, 21, 5, \ + Ase0, Abu0, r10, 1, 21, \ + 1, Aku1 + ldr r9, [sp, #mDo0] // @slothy:reads=[spmDo0] + KeccakThetaRhoPiChiIota Aba1, r8, 0, \ + Ake0, r11, 22, 22, \ + Asi1, r2, 21, 9, \ + Ago1, r9, 10, 14, \ + Amu0, r14, 7, 27, \ + 20, 0, 1, Abu0, r14 + +.endm + + +/****************************************************************************** + * 4th round of the 4 unrolled rounds routine due to in-place processing. + * Note that the Rho step is *not* delayed so that the internal state is + * compliant w/ the classical representation at the end of the routine. + *****************************************************************************/ +.macro KeccakRound3 + str r14, [r0, #Aba1] // @slothy:writes=[r0Aba1] + xor5pair r3, r4, r1, r5, r11, r12, \ + Amu0, Amu1, 1, Agu0, Agu1, 0, Asu0, Asu1, 1, Aku0, Aku1, 0, Abu0, Abu1, 0, \ + 22, 10, 3, 18, 28, \ + 22, 10, 3, 18, 27 + xor5pair r7, r8, r1, r5, r11, r12, \ + Ake0, Ake1, 1, Abe0, Abe1, 0, Ame0, Ame1, 0, Age0, Age1, 1, Ase0, Ase1, 0, \ + 11, 23, 4, 8, 21, \ + 10, 22, 4, 7, 20 + ror r3, r3, #32-22 + ror r7, r7, #32-11 + xorrol r6, r3, r8, 32-10 + str r6, [sp, #mDa0] // @slothy:writes=[spmDa0] + eor r10, r7, r4, ror #32-22 + str r10, [sp, #mDa1] // @slothy:writes=[spmDa1] + xor5pair r1, r5, r6, r10, r11, r12, \ + Asi0, Asi1, 0, Aki0, Aki1, 0, Abi0, Abi1, 1, Ami0, Ami1, 1, Agi0, Agi1, 1, \ + 7, 31, 9, 28, 1, \ + 7, 30, 9, 28, 1 + ror r1, r1, #32-7 + eor r6, r3, r5, ror #32-7 + str r6, [sp, #mDo1] // @slothy:writes=[spmDo1] + xorrol r9, r1, r4, 32-22 + str r9, [sp, #mDo0] // @slothy:writes=[spmDo0] + xor5pair r3, r4, r6, r10, r11, r12, \ + Ago0, Ago1, 0, Aso0, Aso1, 1, Ako0, Ako1, 1, Abo0, Abo1, 1, Amo0, Amo1, 0, \ + 0, 14, 1, 14, 31, \ + 0, 14, 0, 13, 31 + eor r2, r3, r8, ror #32-10 + xorrol r6, r7, r4, 32 + str r6, [sp, #mDi0] // @slothy:writes=[spmDi0] + xor5pair r7, r6, r10, r11, r12, r14, \ + Aba0, Aba1, 0, Ama0, Ama1, 0, Aga0, Aga1, 1, Asa0, Asa1, 1, Aka0, Aka1, 0, \ + 0, 2, 13, 5, 20, \ + 0, 1, 12, 5, 19 + xorrol r10, r7, r5, 32-7 + eor r11, r6, r1 + xorrol r12, r3, r6, 32 + eor r14, r4, r7 + ldr r8, [sp, #mDa1] // @slothy:reads=[spmDa1] + KeccakThetaRhoPiChiSkipStore Ago0, Aga0, r9, 14, 0, \ + Agu0, Age0, r12, 10, 10, \ + Aga0, Agi0, r8, 2, 12, \ + Age0, Ago0, r11, 23, 7, \ + Agi0, Agu0, r2, 31, 1, \ + 0, Aga0 + KeccakThetaRhoPiChi Ake1, Aka1, r10, 0, 11, \ + Aki1, Ake1, r2, 3, 30, \ + Ako1, Aki1, r9, 12, 1, \ + Aku1, Ako1, r14, 4, 18, \ + Aka1, Aku1, r8, 9, 19, \ + 0, Agu0 + ldr r8, [sp, #mDa0] // @slothy:reads=[spmDa0] + KeccakThetaRhoPiChi Amu0, Ama0, r14, 14, 22, \ + Ama0, Ame0, r8, 18, 2, \ + Ame0, Ami0, r10, 5, 4, \ + Ami0, Amo0, r2, 8, 28, \ + Amo0, Amu0, r9, 28, 31, \ + 0, Aku1 + KeccakThetaRhoPiChi Asi1, Asa1, r2, 31, 7, \ + Aso1, Ase1, r9, 27, 14, \ + Asu1, Asi1, r12, 19, 3, \ + Asa1, Aso1, r8, 20, 5, \ + Ase1, Asu1, r11, 1, 20, \ + 0, Amu0 + ldr r9, [sp, #mDo1] // @slothy:reads=[spmDo1] + KeccakThetaRhoPiChiIota Aba0, r8, 0, \ + Abe0, r10, 22, 23, \ + Abi0, r2, 22, 9, \ + Abo0, r9, 11, 13, \ + Abu0, r12, 7, 28, \ + 24, 0, 0, Asu1, r1 + ldr r2, [sp, #mDi0] // @slothy:reads=[spmDi0] + KeccakThetaRhoPiChi Ago1, Aga1, r9, 14, 0, \ + Agu1, Age1, r14, 10, 10, \ + Aga1, Agi1, r8, 1, 13, \ + Age1, Ago1, r10, 22, 8, \ + Agi1, Agu1, r2, 30, 1, \ + 0, Aba0 + KeccakThetaRhoPiChi Ake0, Aka0, r11, 1, 10, \ + Aki0, Ake0, r2, 3, 31, \ + Ako0, Aki0, r9, 13, 0, \ + Aku0, Ako0, r12, 4, 18, \ + Aka0, Aku0, r8, 9, 20, \ + 0, Agu1 + ldr r8, [sp, #mDa1] // @slothy:reads=[spmDa1] + KeccakThetaRhoPiChi Amu1, Ama1, r12, 13, 22, \ + Ama1, Ame1, r8, 18, 1, \ + Ame1, Ami1, r11, 5, 4, \ + Ami1, Amo1, r2, 7, 28, \ + Amo1, Amu1, r9, 28, 31, \ + 0, Aku0 + KeccakThetaRhoPiChi Asi0, Asa0, r2, 31, 7, \ + Aso0, Ase0, r9, 28, 14, \ + Asu0, Asi0, r14, 20, 3, \ + Asa0, Aso0, r8, 21, 5, \ + Ase0, Asu0, r10, 1, 21, \ + 0, Amu1 + ldr r9, [sp, #mDo0] // @slothy:reads=[spmDo0] + KeccakThetaRhoPiChiIota Aba1, r8, 0, \ + Abe1, r11, 22, 22, \ + Abi1, r2, 21, 9, \ + Abo1, r9, 10, 14, \ + Abu1, r14, 7, 27, \ + 28, 1, 0, Asu0, r1 + str r1, [r0, #Aba1] // @slothy:writes=[r0Aba1] +.endm + +@---------------------------------------------------------------------------- +@ +@ void KeccakF1600_StatePermute( void *state ) +@ +.align 8 +.global MLD_ASM_NAMESPACE(keccak_f1600_x1_armv7m_asm) +.type MLD_ASM_NAMESPACE(keccak_f1600_x1_armv7m_asm),%function +MLD_ASM_FN_SYMBOL(keccak_f1600_x1_armv7m_asm) + push { r4 - r12, lr } + sub sp, #mSize + str r1, [sp, #mRC] +mld_keccak_f1600_x1_armv7m_asm_StatePermute_RoundLoop: +mld_keccak_f1600_x1_armv7m_asm_slothy_start: + KeccakRound0 + KeccakRound1 + KeccakRound2 + KeccakRound3 +mld_keccak_f1600_x1_armv7m_asm_slothy_end: + bne mld_keccak_f1600_x1_armv7m_asm_StatePermute_RoundLoop + add sp, #mSize + pop { r4 - r12, pc } + +MLD_ASM_FN_SIZE(keccak_f1600_x1_armv7m_asm) + +/* simpasm: footer-start */ +#endif /* MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/armv81m_clean/src/keccak_f1600_x1_state_extract_bytes_mve.S b/dev/fips202/armv81m_clean/src/keccak_f1600_x1_state_extract_bytes_mve.S new file mode 100644 index 0000000000..9944f09ddb --- /dev/null +++ b/dev/fips202/armv81m_clean/src/keccak_f1600_x1_state_extract_bytes_mve.S @@ -0,0 +1,196 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * Copyright (c) 2026 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* + * This helper is adapted from the Armv8.1-M MVE x1 byte-operation work in + * mlkem-native. It converts two adjacent Keccak lanes at once between the + * bit-interleaved x1 representation and bytes. + */ + +/*yaml + Name: keccak_f1600_x1_state_extract_bytes_asm + Description: Armv8.1-M MVE fast path for extracting bytes from an x1 bit-interleaved Keccak state + Signature: void mld_keccak_f1600_x1_state_extract_bytes_asm(void *state, uint8_t *data, unsigned offset, unsigned length) + ABI: + Architecture: armv81m + CallingConvention: AAPCS32 + Features: [MVE] + r0: + type: buffer + size_bytes: 200 + permissions: read-only + c_parameter: void *state + description: Bit-interleaved x1 Keccak state, naturally aligned for 32-bit MVE state accesses + r1: + type: buffer + size_bytes: r3 + permissions: write-only + c_parameter: uint8_t *data + description: Arbitrarily byte-aligned output bytes + r2: + type: scalar + c_parameter: unsigned offset + description: Byte offset within the first 192 state bytes; the C wrapper dispatches final-lane ranges to the scalar helper + test_with: 7 + r3: + type: scalar + c_parameter: unsigned length + description: Number of output bytes such that offset plus length is at most 192 + test_with: 9 + Stack: + bytes: 40 + description: AAPCS32 preservation of r4-r11 and lr; the MVE fast path uses only caller-saved q0-q3 and p0 +*/ + +/* + * AAPCS32 contract: preserves r4-r11, sp, and d8-d15/q4-q7. The caller-saved + * r0-r3, r12, lr, APSR condition flags, q0-q3, and p0 may be clobbered. + * The MVE fast path covers only byte ranges ending at or before state byte + * 192, so each 16-byte state vector access remains within the 200-byte state. + * The C wrapper dispatches ranges touching the final eight-byte lane to the + * scalar helper. + */ + +#include "../../../../common.h" + +#if defined(MLD_FIPS202_ARMV81M_NEED_X1) && \ + !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) && defined(__ARM_FEATURE_MVE) +/* simpasm: header-end */ + +.thumb +.syntax unified +.text + +/* Expand the compact even-bit representation into byte positions. */ +.macro mld_keccak_x1_mve_deinterleave_even e, tmp, const4, const16 + vsli.u32 \e, \e, #8 + vsli.u16 \e, \e, #4 + vsli.u8 \e, \e, #1 + vqdmulh.s8 \tmp, \e, \const16 + vsli.u8 \e, \tmp, #4 + vqdmulh.s8 \tmp, \e, \const4 + vsli.u8 \e, \tmp, #6 +.endm + +/* q0: two bit-interleaved lanes; prepare their even and odd bit planes. */ +.macro mld_keccak_x1_mve_prepare_from_bit_interleaving tmp + mov \tmp, #0x0f0f + vmsr p0, \tmp + vrev32.u16 q1, q0 + vrev64.u32 q2, q1 + vrev64.u32 q3, q0 + vpsel q0, q0, q2 + vpsel q1, q3, q1 +.endm + +/* Expand the prepared bit planes and merge them into byte-order lanes. */ +.macro mld_keccak_x1_mve_finish_from_bit_interleaving tmp, const4, const16 + mld_keccak_x1_mve_deinterleave_even q0, q2, \const4, \const16 + mld_keccak_x1_mve_deinterleave_even q1, q2, \const4, \const16 + mov \tmp, #0x55 + vdup.u8 q2, \tmp + vand.u32 q0, q0, q2 + vand.u32 q1, q1, q2 + vshl.u32 q1, q1, #1 + vorr.u32 q0, q1, q0 +.endm + +.balign 8 +.global MLD_ASM_NAMESPACE(keccak_f1600_x1_state_extract_bytes_asm) +.type MLD_ASM_NAMESPACE(keccak_f1600_x1_state_extract_bytes_asm), %function +MLD_ASM_FN_SYMBOL(keccak_f1600_x1_state_extract_bytes_asm) + cmp r3, #0 + beq.w mld_keccak_f1600_x1_state_extract_bytes_mve_exit + + push {r4-r12, lr} + + state .req r0 + dp .req r1 + off_full .req r2 + length .req r3 + tmp .req r4 + nbytes .req lr + off .req r5 + const4 .req r6 + const16 .req r7 + state_pair_offset .req r9 + mask .req r11 + qdata .req q0 + + mov const4, #4 + mov const16, #16 + and off, off_full, #15 + bic state_pair_offset, off_full, #15 + add state, state, state_pair_offset + + /* Extract the first partial two-lane group, if any. */ + cmp off, #0 + beq.w mld_keccak_f1600_x1_state_extract_bytes_mve_pre_main + subs dp, dp, off + rsb nbytes, off, #16 + cmp length, nbytes + it ls + movls nbytes, length + subs length, length, nbytes + vldrw.u32 qdata, [state], #16 + mld_keccak_x1_mve_prepare_from_bit_interleaving tmp + mld_keccak_x1_mve_finish_from_bit_interleaving tmp, const4, const16 + vctp.8 nbytes + vmrs mask, p0 + lsl mask, mask, off + vmsr p0, mask + vpst + vstrbt.u8 qdata, [dp], #16 + cmp length, #0 + beq.w mld_keccak_f1600_x1_state_extract_bytes_mve_restore + +mld_keccak_f1600_x1_state_extract_bytes_mve_pre_main: + lsr nbytes, length, #4 + wls nbytes, nbytes, mld_keccak_f1600_x1_state_extract_bytes_mve_main_loop_end +mld_keccak_f1600_x1_state_extract_bytes_mve_slothy_prepare: + vldrw.u32 qdata, [state], #16 + mld_keccak_x1_mve_prepare_from_bit_interleaving tmp +mld_keccak_f1600_x1_state_extract_bytes_mve_slothy_start: + mld_keccak_x1_mve_finish_from_bit_interleaving tmp, const4, const16 + /* Byte vector stores keep the public data pointer alignment-independent. */ + vstrb.u8 qdata, [dp], #16 +mld_keccak_f1600_x1_state_extract_bytes_mve_slothy_end: + le nbytes, mld_keccak_f1600_x1_state_extract_bytes_mve_slothy_prepare +mld_keccak_f1600_x1_state_extract_bytes_mve_main_loop_end: + ands length, length, #15 + beq.w mld_keccak_f1600_x1_state_extract_bytes_mve_restore + + vldrw.u32 qdata, [state] + mld_keccak_x1_mve_prepare_from_bit_interleaving tmp + mld_keccak_x1_mve_finish_from_bit_interleaving tmp, const4, const16 + vctp.8 length + vpst + vstrbt.u8 qdata, [dp], #16 + +mld_keccak_f1600_x1_state_extract_bytes_mve_restore: + pop {r4-r12, lr} +mld_keccak_f1600_x1_state_extract_bytes_mve_exit: + bx lr + + .unreq state + .unreq dp + .unreq off_full + .unreq length + .unreq tmp + .unreq nbytes + .unreq off + .unreq const4 + .unreq const16 + .unreq state_pair_offset + .unreq mask + .unreq qdata + +MLD_ASM_FN_SIZE(keccak_f1600_x1_state_extract_bytes_asm) + +/* simpasm: footer-start */ +#endif /* MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED && \ + __ARM_FEATURE_MVE */ diff --git a/dev/fips202/armv81m_clean/src/keccak_f1600_x1_state_xor_bytes_mve.S b/dev/fips202/armv81m_clean/src/keccak_f1600_x1_state_xor_bytes_mve.S new file mode 100644 index 0000000000..3b76086d64 --- /dev/null +++ b/dev/fips202/armv81m_clean/src/keccak_f1600_x1_state_xor_bytes_mve.S @@ -0,0 +1,210 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * Copyright (c) 2026 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* + * This helper is adapted from the Armv8.1-M MVE x1 byte-operation work in + * mlkem-native. It converts two adjacent Keccak lanes at once between bytes + * and the bit-interleaved x1 representation. + */ + +/*yaml + Name: keccak_f1600_x1_state_xor_bytes_asm + Description: Armv8.1-M MVE fast path for XORing bytes into an x1 bit-interleaved Keccak state + Signature: void mld_keccak_f1600_x1_state_xor_bytes_asm(void *state, const uint8_t *data, unsigned offset, unsigned length) + ABI: + Architecture: armv81m + CallingConvention: AAPCS32 + Features: [MVE] + r0: + type: buffer + size_bytes: 200 + permissions: read/write + c_parameter: void *state + description: Bit-interleaved x1 Keccak state, naturally aligned for 32-bit MVE state accesses + r1: + type: buffer + size_bytes: r3 + permissions: read-only + c_parameter: const uint8_t *data + description: Arbitrarily byte-aligned input bytes to XOR into the state + r2: + type: scalar + c_parameter: unsigned offset + description: Byte offset within the first 192 state bytes; the C wrapper dispatches final-lane ranges to the scalar helper + test_with: 7 + r3: + type: scalar + c_parameter: unsigned length + description: Number of input bytes such that offset plus length is at most 192 + test_with: 9 + Stack: + bytes: 40 + description: AAPCS32 preservation of r4-r11 and lr; the MVE fast path uses only caller-saved q0-q3 and p0 +*/ + +/* + * AAPCS32 contract: preserves r4-r11, sp, and d8-d15/q4-q7. The caller-saved + * r0-r3, r12, lr, APSR condition flags, q0-q3, and p0 may be clobbered. + * The MVE fast path covers only byte ranges ending at or before state byte + * 192, so each 16-byte state vector access remains within the 200-byte state. + * The C wrapper dispatches ranges touching the final eight-byte lane to the + * scalar helper. + */ + +#include "../../../../common.h" + +#if defined(MLD_FIPS202_ARMV81M_NEED_X1) && \ + !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) && defined(__ARM_FEATURE_MVE) +/* simpasm: header-end */ + +.thumb +.syntax unified +.text + +/* Compact the even bits of each element into the low half. */ +.macro mld_keccak_x1_mve_interleave_evens t, u, const8, const16, const32, const128, const32768 + vqdmulh.s8 \u, \t, \const32 + vsli.u8 \t, \u, #1 + vqdmulh.s8 \u, \t, \const16 + vsli.u8 \t, \u, #2 + vqdmulh.s8 \u, \t, \const8 + vsli.u8 \t, \u, #3 + vqdmulh.s16 \u, \t, \const128 + vsli.u8 \t, \u, #4 + vqdmulh.s32 \u, \t, \const32768 + vsli.u16 \t, \u, #8 +.endm + +/* q0: two byte-order lanes; result: their bit-interleaved representation. */ +.macro mld_keccak_x1_mve_to_bit_interleaving tmp, const8, const16, const32, const128, const32768 + vshr.u32 q1, q0, #1 + mld_keccak_x1_mve_interleave_evens q1, q2, \const8, \const16, \const32, \const128, \const32768 + vrev64.u32 q2, q1 + vsli.u32 q2, q1, #16 + mld_keccak_x1_mve_interleave_evens q0, q3, \const8, \const16, \const32, \const128, \const32768 + vrev64.u32 q3, q0 + vsli.u32 q0, q3, #16 +.endm + +/* Kept outside the SLOTHY region: the pinned parser has no VMSR/VPSEL + * predicate-instruction support. */ +.macro mld_keccak_x1_mve_select_bit_planes tmp + mov \tmp, #0x0f0f + vmsr p0, \tmp + vpsel q0, q0, q2 +.endm + +.balign 8 +.global MLD_ASM_NAMESPACE(keccak_f1600_x1_state_xor_bytes_asm) +.type MLD_ASM_NAMESPACE(keccak_f1600_x1_state_xor_bytes_asm), %function +MLD_ASM_FN_SYMBOL(keccak_f1600_x1_state_xor_bytes_asm) + cmp r3, #0 + beq.w mld_keccak_f1600_x1_state_xor_bytes_mve_exit + + push {r4-r12, lr} + + state .req r0 + dp .req r1 + off_full .req r2 + length .req r3 + tmp .req r4 + off .req r5 + state_pair_offset .req r6 + const8 .req r8 + const16 .req r9 + const32 .req r10 + const128 .req r11 + const32768 .req r12 + nbytes .req lr + qdata .req q0 + qstate .req q1 + + mov const8, #8 + mov const16, #16 + mov const32, #32 + mov const128, #128 + mov const32768, #32768 + + and off, off_full, #15 + bic state_pair_offset, off_full, #15 + add state, state, state_pair_offset + + /* Absorb the first partial two-lane group, if any. */ + cmp off, #0 + beq.w mld_keccak_f1600_x1_state_xor_bytes_mve_pre_main + subs dp, dp, off + rsb nbytes, off, #16 + cmp length, nbytes + it ls + movls nbytes, length + subs length, length, nbytes + vctp.8 nbytes + vmrs tmp, p0 + lsl tmp, tmp, off + vmsr p0, tmp + vpst + vldrbt.u8 qdata, [dp], #16 + mld_keccak_x1_mve_to_bit_interleaving tmp, const8, const16, const32, const128, const32768 + mld_keccak_x1_mve_select_bit_planes tmp + vldrw.u32 qstate, [state] + veor qstate, qstate, qdata + vstrw.u32 qstate, [state], #16 + cmp length, #0 + beq.w mld_keccak_f1600_x1_state_xor_bytes_mve_restore + +mld_keccak_f1600_x1_state_xor_bytes_mve_pre_main: + lsr nbytes, length, #4 + wls nbytes, nbytes, mld_keccak_f1600_x1_state_xor_bytes_mve_main_loop_end +mld_keccak_f1600_x1_state_xor_bytes_mve_slothy_start: + /* Byte vector loads keep the public data pointer alignment-independent. */ + vldrb.u8 qdata, [dp], #16 + mld_keccak_x1_mve_to_bit_interleaving tmp, const8, const16, const32, const128, const32768 +mld_keccak_f1600_x1_state_xor_bytes_mve_slothy_end: + mld_keccak_x1_mve_select_bit_planes tmp + vldrw.u32 qstate, [state] + veor qstate, qstate, qdata + vstrw.u32 qstate, [state], #16 + le nbytes, mld_keccak_f1600_x1_state_xor_bytes_mve_slothy_start +mld_keccak_f1600_x1_state_xor_bytes_mve_main_loop_end: + ands length, length, #15 + beq.w mld_keccak_f1600_x1_state_xor_bytes_mve_restore + + vctp.8 length + vpst + vldrbt.u8 qdata, [dp], #16 + mld_keccak_x1_mve_to_bit_interleaving tmp, const8, const16, const32, const128, const32768 + mld_keccak_x1_mve_select_bit_planes tmp + vldrw.u32 qstate, [state] + veor qstate, qstate, qdata + vstrw.u32 qstate, [state] + +mld_keccak_f1600_x1_state_xor_bytes_mve_restore: + pop {r4-r12, lr} +mld_keccak_f1600_x1_state_xor_bytes_mve_exit: + bx lr + + .unreq state + .unreq dp + .unreq off_full + .unreq length + .unreq tmp + .unreq off + .unreq state_pair_offset + .unreq const8 + .unreq const16 + .unreq const32 + .unreq const128 + .unreq const32768 + .unreq nbytes + .unreq qdata + .unreq qstate + +MLD_ASM_FN_SIZE(keccak_f1600_x1_state_xor_bytes_asm) + +/* simpasm: footer-start */ +#endif /* MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED && \ + __ARM_FEATURE_MVE */ diff --git a/dev/fips202/armv81m_opt/README.md b/dev/fips202/armv81m_opt/README.md new file mode 100644 index 0000000000..a06df238d6 --- /dev/null +++ b/dev/fips202/armv81m_opt/README.md @@ -0,0 +1,41 @@ +[//]: # (SPDX-License-Identifier: CC-BY-4.0) + +# FIPS202 backend for Armv8.1-M: Development sources + +This directory contains the selected SLOTHY outputs for the Armv8.1-M x1 +FIPS202 backend targeting Mainline processors, including Cortex-M55. + +The x1 Keccak-f[1600] `*_opt_m55.S` permutation is generated from the clean +`../armv81m_clean/src/keccak_f1600_x1_armv81m.S` input using the +`Arm_v81M` / `Arm_Cortex_M55r1` SLOTHY target model. Its `LDRD` state loads +require the internal `uint64_t state[25]` ABI's natural eight-byte alignment. +In theta, paired theta parity loads fetch a lane's even and odd 32-bit +components together with one `LDRD`. + +The MVE x1 byte XOR/extract helpers are likewise generated from clean inputs +in `../armv81m_clean/src/`. They transform two adjacent state lanes at once, +use byte-vector loads/stores so their public data buffers may be arbitrarily +aligned, and use only caller-saved `q0`--`q3` and `p0`. Their fast path covers +the first 192 state bytes; a scalar fallback handles ranges touching the final +eight-byte lane so no 16-byte access extends past the 200-byte state. + +Each checked-in output is the selected schedule; it is intentionally retained +even when a later solver run chooses a different valid schedule. + +The pinned SLOTHY revision is +`fed47d3f1e40b9c1f202f759f1d6c4100fe14f4d` +([slothy-optimizer/slothy#464](https://github.com/slothy-optimizer/slothy/pull/464)). +The M55 configuration uses the documented split policy and 1000-second initial +and retry timeouts. The clean input owns the generated file's metadata and +integration guards. The pinned parser does not model `VMSR`/`VPSEL`, so the +MVE helper schedules deliberately leave predicate setup outside the scheduled +region. Regenerate candidate schedules with: + +```sh +scripts/autogen --slothy keccak_f1600_x1_armv7m_opt_m55 \ + keccak_f1600_x1_state_xor_bytes_mve \ + keccak_f1600_x1_state_extract_bytes_mve +``` + +**Warning:** This backend is still in active development and has not yet undergone +the same level of review as the rest of the code. Use at your own risk! diff --git a/dev/fips202/armv81m_opt/src/Makefile b/dev/fips202/armv81m_opt/src/Makefile new file mode 100644 index 0000000000..97499ae5ec --- /dev/null +++ b/dev/fips202/armv81m_opt/src/Makefile @@ -0,0 +1,26 @@ +# Copyright (c) The mldsa-native project authors +# SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + +.PHONY: all clean + +PYTHON ?= python3 +SLOTHY_KECCAK_M4 ?= slothy_keccak_m4.py +SLOTHY_KECCAK_X1_HELPERS_MVE ?= slothy_keccak_x1_helpers_mve.py + +all: keccak_f1600_x1_armv7m_opt_m55.S \ + keccak_f1600_x1_state_xor_bytes_mve.S \ + keccak_f1600_x1_state_extract_bytes_mve.S + +keccak_f1600_x1_armv7m_opt_m55.S: ../../armv81m_clean/src/keccak_f1600_x1_armv81m.S $(SLOTHY_KECCAK_M4) + $(PYTHON) $(SLOTHY_KECCAK_M4) $< $@ + +keccak_f1600_x1_state_xor_bytes_mve.S: ../../armv81m_clean/src/keccak_f1600_x1_state_xor_bytes_mve.S $(SLOTHY_KECCAK_X1_HELPERS_MVE) + $(PYTHON) $(SLOTHY_KECCAK_X1_HELPERS_MVE) $< $@ xor + +keccak_f1600_x1_state_extract_bytes_mve.S: ../../armv81m_clean/src/keccak_f1600_x1_state_extract_bytes_mve.S $(SLOTHY_KECCAK_X1_HELPERS_MVE) + $(PYTHON) $(SLOTHY_KECCAK_X1_HELPERS_MVE) $< $@ extract + +clean: + $(RM) keccak_f1600_x1_armv7m_opt_m55.S \ + keccak_f1600_x1_state_xor_bytes_mve.S \ + keccak_f1600_x1_state_extract_bytes_mve.S diff --git a/dev/fips202/armv81m_opt/src/keccak_f1600_x1_armv7m.c b/dev/fips202/armv81m_opt/src/keccak_f1600_x1_armv7m.c new file mode 100644 index 0000000000..c58846267b --- /dev/null +++ b/dev/fips202/armv81m_opt/src/keccak_f1600_x1_armv7m.c @@ -0,0 +1,144 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +#include "../../../../common.h" + +#if defined(MLD_FIPS202_ARMV81M_NEED_X1) && \ + !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) + +#define mld_keccak_f1600_x1_armv7m_asm MLD_NAMESPACE(keccak_f1600_x1_armv7m_asm) +void mld_keccak_f1600_x1_armv7m_asm(uint64_t state[25], const uint32_t rc[49]); + +/* MVE is optional within Armv8.1-M; retain the scalar x1 path when it is not + * enabled by the compiler target. */ +#if defined(__ARM_FEATURE_MVE) +#define mld_keccak_f1600_x1_state_xor_bytes_asm \ + MLD_NAMESPACE(keccak_f1600_x1_state_xor_bytes_asm) +void mld_keccak_f1600_x1_state_xor_bytes_asm(void *state, const uint8_t *data, + unsigned offset, unsigned length); +#endif /* __ARM_FEATURE_MVE */ + +#define mld_keccak_f1600_x1_state_xor_bytes_scalar_asm \ + MLD_NAMESPACE(keccak_f1600_x1_state_xor_bytes_scalar_asm) +void mld_keccak_f1600_x1_state_xor_bytes_scalar_asm(void *state, + const uint8_t *data, + unsigned offset, + unsigned length); + +#if defined(__ARM_FEATURE_MVE) +#define mld_keccak_f1600_x1_state_extract_bytes_asm \ + MLD_NAMESPACE(keccak_f1600_x1_state_extract_bytes_asm) +void mld_keccak_f1600_x1_state_extract_bytes_asm(void *state, uint8_t *data, + unsigned offset, + unsigned length); +#endif /* __ARM_FEATURE_MVE */ + +#define mld_keccak_f1600_x1_state_extract_bytes_scalar_asm \ + MLD_NAMESPACE(keccak_f1600_x1_state_extract_bytes_scalar_asm) +void mld_keccak_f1600_x1_state_extract_bytes_scalar_asm(void *state, + uint8_t *data, + unsigned offset, + unsigned length); + +#if defined(__ARM_FEATURE_MVE) +#define MLD_KECCAK_X1_MVE_FAST_BYTES 192u +#endif + +/* The Adomnicai x1 core consumes 24 bit-interleaved round constants followed + * by a 0xff loop terminator. Keep this table private to this backend. */ +static MLD_ALIGN const uint32_t mld_keccakf1600_round_constants_x1[49] = { + 0x00000001, 0x00000000, /* RC0 */ + 0x00000000, 0x00000089, /* RC1 */ + 0x00000000, 0x8000008b, /* RC2 */ + 0x00000000, 0x80008080, /* RC3 */ + 0x00000001, 0x0000008b, /* RC4 */ + 0x00000001, 0x00008000, /* RC5 */ + 0x00000001, 0x80008088, /* RC6 */ + 0x00000001, 0x80000082, /* RC7 */ + 0x00000000, 0x0000000b, /* RC8 */ + 0x00000000, 0x0000000a, /* RC9 */ + 0x00000001, 0x00008082, /* RC10 */ + 0x00000000, 0x00008003, /* RC11 */ + 0x00000001, 0x0000808b, /* RC12 */ + 0x00000001, 0x8000000b, /* RC13 */ + 0x00000001, 0x8000008a, /* RC14 */ + 0x00000001, 0x80000081, /* RC15 */ + 0x00000000, 0x80000081, /* RC16 */ + 0x00000000, 0x80000008, /* RC17 */ + 0x00000000, 0x00000083, /* RC18 */ + 0x00000000, 0x80008003, /* RC19 */ + 0x00000001, 0x80008088, /* RC20 */ + 0x00000000, 0x80000088, /* RC21 */ + 0x00000001, 0x00008000, /* RC22 */ + 0x00000000, 0x80008082, /* RC23 */ + 0x000000ff, /* loop terminator */ +}; + +#define mld_keccak_f1600_x1_native_impl \ + MLD_NAMESPACE(keccak_f1600_x1_native_impl) +int mld_keccak_f1600_x1_native_impl(uint64_t *state) +{ + /* The x1 native xor/extract hooks keep state bit-interleaved in-place. */ + mld_keccak_f1600_x1_armv7m_asm(state, mld_keccakf1600_round_constants_x1); + return MLD_NATIVE_FUNC_SUCCESS; +} + +#define mld_keccakf1600_xor_bytes_x1_native_impl \ + MLD_NAMESPACE(keccakf1600_xor_bytes_x1_native_impl) +int mld_keccakf1600_xor_bytes_x1_native_impl(uint64_t *state, + const uint8_t *data, + unsigned offset, unsigned length) +{ +#if defined(__ARM_FEATURE_MVE) + if (offset <= MLD_KECCAK_X1_MVE_FAST_BYTES && + length <= MLD_KECCAK_X1_MVE_FAST_BYTES - offset) + { + mld_keccak_f1600_x1_state_xor_bytes_asm(state, data, offset, length); + return MLD_NATIVE_FUNC_SUCCESS; + } +#endif /* __ARM_FEATURE_MVE */ + mld_keccak_f1600_x1_state_xor_bytes_scalar_asm(state, data, offset, length); + return MLD_NATIVE_FUNC_SUCCESS; +} + +#define mld_keccakf1600_extract_bytes_x1_native_impl \ + MLD_NAMESPACE(keccakf1600_extract_bytes_x1_native_impl) +int mld_keccakf1600_extract_bytes_x1_native_impl(uint64_t *state, uint8_t *data, + unsigned offset, + unsigned length) +{ +#if defined(__ARM_FEATURE_MVE) + if (offset <= MLD_KECCAK_X1_MVE_FAST_BYTES && + length <= MLD_KECCAK_X1_MVE_FAST_BYTES - offset) + { + mld_keccak_f1600_x1_state_extract_bytes_asm(state, data, offset, length); + return MLD_NATIVE_FUNC_SUCCESS; + } +#endif /* __ARM_FEATURE_MVE */ + mld_keccak_f1600_x1_state_extract_bytes_scalar_asm(state, data, offset, + length); + return MLD_NATIVE_FUNC_SUCCESS; +} + +#else /* MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */ + +MLD_EMPTY_CU(keccak_f1600_x1_armv7m) + +#endif /* !(MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED) \ + */ + +/* To facilitate single-compilation-unit (SCU) builds, undefine all macros. + * Don't modify by hand -- this is auto-generated by scripts/autogen. */ +#undef mld_keccak_f1600_x1_armv7m_asm +#undef mld_keccak_f1600_x1_state_xor_bytes_asm +#undef mld_keccak_f1600_x1_state_xor_bytes_scalar_asm +#undef mld_keccak_f1600_x1_state_extract_bytes_asm +#undef mld_keccak_f1600_x1_state_extract_bytes_scalar_asm +#undef MLD_KECCAK_X1_MVE_FAST_BYTES +/* Some macros are kept because they are also defined in a header. */ +/* Keep: mld_keccak_f1600_x1_native_impl (mve_x1.h) */ +/* Keep: mld_keccakf1600_xor_bytes_x1_native_impl (mve_x1.h) */ +/* Keep: mld_keccakf1600_extract_bytes_x1_native_impl (mve_x1.h) */ diff --git a/dev/fips202/armv81m_opt/src/keccak_f1600_x1_armv7m_opt_m55.S b/dev/fips202/armv81m_opt/src/keccak_f1600_x1_armv7m_opt_m55.S new file mode 100644 index 0000000000..ff0c6df410 --- /dev/null +++ b/dev/fips202/armv81m_opt/src/keccak_f1600_x1_armv7m_opt_m55.S @@ -0,0 +1,3649 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* References + * ========== + * + * - [ADOMNICAI23] + * An update on Keccak performance on ARMv7-M + * Alexandre Adomnicai + * https://eprint.iacr.org/2023/773 + * + * - [SLOTHYM7] + * Enabling Microarchitectural Agility: Taking ML-KEM and ML-DSA from + * Cortex-M4 to M7 with SLOTHY + * Abdulrahman, Kannwischer, Lim + * https://eprint.iacr.org/2025/366 + * + * - [XKCP] + * eXtended Keccak Code Package + * Bertoni, Daemen, Peeters, Van Assche, Van Keer + * https://github.com/XKCP/XKCP + */ + +/* + * XKCP-derived portions carry the following CC0-1.0 dedication: + * + * Implementation by the Keccak, Keyak and Ketje Teams, namely, Guido Bertoni, + * Joan Daemen, Michaël Peeters, Gilles Van Assche and Ronny Van Keer, hereby + * denoted as "the implementer". + * Additional optimizations by Alexandre Adomnicai. + * + * To the extent possible under law, the implementer has waived all copyright + * and related or neighboring rights to the source code in this file. + * https://creativecommons.org/publicdomain/zero/1.0/ + * + * The SLOTHY-derived portions are distributed under the MIT license: + * Copyright (c) 2022 Arm Limited + * Copyright (c) 2022 Hanno Becker + * Copyright (c) 2023 Amin Abdulrahman, Matthias Kannwischer + * See LICENSE for the full MIT license terms. + */ + +/* + * This file is derived from the SLOTHY 0.2.2 source + * examples/naive/armv7m/keccak/keccakf1600_adomnicai_m4.s. + * Its XKCP-derived portions are dedicated to the public domain under CC0-1.0; + * its SLOTHY-derived portions are distributed under the MIT license. + * + * This is the selected Armv8.1-M M55 schedule. It is generated from + * keccak_f1600_x1_armv81m.S and uses paired theta parity loads to fetch a + * lane's even and odd 32-bit components together with LDRD. + */ + +/*yaml + Name: keccak_f1600_x1_armv7m_asm + Description: Armv8.1-M x1 Keccak-f[1600] permutation using the Adomnicai/XKCP bit-interleaved Armv7-M representation + Signature: void mld_keccak_f1600_x1_armv7m_asm(uint64_t state[25], const uint32_t rc[49]) + ABI: + Architecture: armv81m + CallingConvention: AAPCS32 + Features: [] + r0: + type: buffer + size_bytes: 200 + permissions: read/write + c_parameter: uint64_t state[25] + description: 8-byte-aligned bit-interleaved x1 state containing even/odd 32-bit halves for each Keccak lane + r1: + type: buffer + size_bytes: 196 + permissions: read + c_parameter: const uint32_t rc[49] + description: 24 bit-interleaved round constants followed by the 0xff loop terminator + test_bytes: + 192: 0xff + 193: 0x00 + 194: 0x00 + 195: 0x00 + Stack: + bytes: 64 + description: register preservation (40) + scalar scratch/intermediate state (24); no MVE/Q-register scratch +*/ + +/* + * AAPCS32 contract: preserves r4-r11 and sp; d8-d15 are not accessed. + * The caller-saved r0-r3, r12, and APSR condition flags may be clobbered. + * The 200-byte state buffer must be 8-byte aligned and is modified; the + * round-constant buffer is read-only. + */ + +/* + * This file is derived from the public domain implementation @[XKCP]. + * Optimizations for Armv7-M are described in @[ADOMNICAI23]. + * The clean round body is adapted from SLOTHY's MIT-licensed + * examples/naive/armv7m/keccak/keccakf1600_adomnicai_m7.s. + * Further optimizations using SLOTHY are described in @[SLOTHYM7]. + */ +/* WARNING: This implementation requires a little-endian Armv7-M or Armv8-M Mainline CPU. */ + +#include "../../../../common.h" +#if defined(MLD_FIPS202_ARMV81M_NEED_X1) && !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) +/* simpasm: header-end */ + + .thumb + .syntax unified +.text + + @ Credit: Henry S. Warren, Hacker's Delight, Addison-Wesley, 2002 +.macro toBitInterleaving x0, x1, s0, s1, t, over + + and \t,\x0,#0x55555555 + orr \t,\t,\t, LSR #1 + and \t,\t,#0x33333333 + orr \t,\t,\t, LSR #2 + and \t,\t,#0x0F0F0F0F + orr \t,\t,\t, LSR #4 + and \t,\t,#0x00FF00FF + bfi \t,\t,#8, #8 + .if \over != 0 + lsr \s0,\t, #8 + .else + eor \s0,\s0,\t, LSR #8 + .endif + + and \t,\x1,#0x55555555 + orr \t,\t,\t, LSR #1 + and \t,\t,#0x33333333 + orr \t,\t,\t, LSR #2 + and \t,\t,#0x0F0F0F0F + orr \t,\t,\t, LSR #4 + and \t,\t,#0x00FF00FF + orr \t,\t,\t, LSR #8 + eor \s0,\s0,\t, LSL #16 + + and \t,\x0,#0xAAAAAAAA + orr \t,\t,\t, LSL #1 + and \t,\t,#0xCCCCCCCC + orr \t,\t,\t, LSL #2 + and \t,\t,#0xF0F0F0F0 + orr \t,\t,\t, LSL #4 + and \t,\t,#0xFF00FF00 + orr \t,\t,\t, LSL #8 + .if \over != 0 + lsr \s1,\t, #16 + .else + eor \s1,\s1,\t, LSR #16 + .endif + + and \t,\x1,#0xAAAAAAAA + orr \t,\t,\t, LSL #1 + and \t,\t,#0xCCCCCCCC + orr \t,\t,\t, LSL #2 + and \t,\t,#0xF0F0F0F0 + orr \t,\t,\t, LSL #4 + and \t,\t,#0xFF00FF00 + orr \t,\t,\t, LSL #8 + bfc \t, #0, #16 + eors \s1,\s1,\t + .endm + + @ Credit: Henry S. Warren, Hacker's Delight, Addison-Wesley, 2002 +.macro fromBitInterleaving x0, x1, t + + movs \t, \x0 @ t = x0@ + bfi \x0, \x1, #16, #16 @ x0 = (x0 & 0x0000FFFF) | (x1 << 16)@ + bfc \x1, #0, #16 @ x1 = (t >> 16) | (x1 & 0xFFFF0000)@ + orr \x1, \x1, \t, LSR #16 + + eor \t, \x0, \x0, LSR #8 @ t = (x0 ^ (x0 >> 8)) & 0x0000FF00UL@ x0 = x0 ^ t ^ (t << 8)@ + and \t, #0x0000FF00 + eors \x0, \x0, \t + eor \x0, \x0, \t, LSL #8 + + eor \t, \x0, \x0, LSR #4 @ t = (x0 ^ (x0 >> 4)) & 0x00F000F0UL@ x0 = x0 ^ t ^ (t << 4)@ + and \t, #0x00F000F0 + eors \x0, \x0, \t + eor \x0, \x0, \t, LSL #4 + + eor \t, \x0, \x0, LSR #2 @ t = (x0 ^ (x0 >> 2)) & 0x0C0C0C0CUL@ x0 = x0 ^ t ^ (t << 2)@ + and \t, #0x0C0C0C0C + eors \x0, \x0, \t + eor \x0, \x0, \t, LSL #2 + + eor \t, \x0, \x0, LSR #1 @ t = (x0 ^ (x0 >> 1)) & 0x22222222UL@ x0 = x0 ^ t ^ (t << 1)@ + and \t, #0x22222222 + eors \x0, \x0, \t + eor \x0, \x0, \t, LSL #1 + + eor \t, \x1, \x1, LSR #8 @ t = (x1 ^ (x1 >> 8)) & 0x0000FF00UL@ x1 = x1 ^ t ^ (t << 8)@ + and \t, #0x0000FF00 + eors \x1, \x1, \t + eor \x1, \x1, \t, LSL #8 + + eor \t, \x1, \x1, LSR #4 @ t = (x1 ^ (x1 >> 4)) & 0x00F000F0UL@ x1 = x1 ^ t ^ (t << 4)@ + and \t, #0x00F000F0 + eors \x1, \x1, \t + eor \x1, \x1, \t, LSL #4 + + eor \t, \x1, \x1, LSR #2 @ t = (x1 ^ (x1 >> 2)) & 0x0C0C0C0CUL@ x1 = x1 ^ t ^ (t << 2)@ + and \t, #0x0C0C0C0C + eors \x1, \x1, \t + eor \x1, \x1, \t, LSL #2 + + eor \t, \x1, \x1, LSR #1 @ t = (x1 ^ (x1 >> 1)) & 0x22222222UL@ x1 = x1 ^ t ^ (t << 1)@ + and \t, #0x22222222 + eors \x1, \x1, \t + eor \x1, \x1, \t, LSL #1 + .endm + +@ --- offsets in state +.equ Aba0, 0*4 +.equ Aba1, 1*4 +.equ Abe0, 2*4 +.equ Abe1, 3*4 +.equ Abi0, 4*4 +.equ Abi1, 5*4 +.equ Abo0, 6*4 +.equ Abo1, 7*4 +.equ Abu0, 8*4 +.equ Abu1, 9*4 +.equ Aga0, 10*4 +.equ Aga1, 11*4 +.equ Age0, 12*4 +.equ Age1, 13*4 +.equ Agi0, 14*4 +.equ Agi1, 15*4 +.equ Ago0, 16*4 +.equ Ago1, 17*4 +.equ Agu0, 18*4 +.equ Agu1, 19*4 +.equ Aka0, 20*4 +.equ Aka1, 21*4 +.equ Ake0, 22*4 +.equ Ake1, 23*4 +.equ Aki0, 24*4 +.equ Aki1, 25*4 +.equ Ako0, 26*4 +.equ Ako1, 27*4 +.equ Aku0, 28*4 +.equ Aku1, 29*4 +.equ Ama0, 30*4 +.equ Ama1, 31*4 +.equ Ame0, 32*4 +.equ Ame1, 33*4 +.equ Ami0, 34*4 +.equ Ami1, 35*4 +.equ Amo0, 36*4 +.equ Amo1, 37*4 +.equ Amu0, 38*4 +.equ Amu1, 39*4 +.equ Asa0, 40*4 +.equ Asa1, 41*4 +.equ Ase0, 42*4 +.equ Ase1, 43*4 +.equ Asi0, 44*4 +.equ Asi1, 45*4 +.equ Aso0, 46*4 +.equ Aso1, 47*4 +.equ Asu0, 48*4 +.equ Asu1, 49*4 + +@ --- offsets on stack +.equ mDa0, 0*4 +.equ mDa1, 1*4 +.equ mDo0, 2*4 +.equ mDo1, 3*4 +.equ mDi0, 4*4 +.equ mRC , 5*4 +.equ mSize, 6*4 + +/****************************************************************************** + * Bitwise exclusive-OR where both operands are misaligned (i.e. src1 and src2 + * are rotated by rot1 and rot2, respectively). + * The output result is also misaligned (i.e. dst is rotated by rot1-rot2). + * - dst destination register + * - src1-src2 source registers + * - rot1-rot2 rotation values + *****************************************************************************/ +.macro eorror dst, src1, src2, rot1, rot2 +.if \rot1 >= \rot2 + eor \dst, \src1, \src2, ror #\rot1-\rot2 +.else + eor \dst, \src1, \src2, ror #32+\rot1-\rot2 +.endif +.endm + + +/****************************************************************************** + * Bit clear instruction where both operands are misaligned (i.e. src1 and src2 + * are rotated by rot1 and rot2, respectively). + * The output result is also misaligned (i.e. dst is rotated by rot1-rot2). + * - dst destination register + * - src1-src2 source registers + * - rot1-rot2 rotation values + *****************************************************************************/ +.macro bicror dst, src1, src2, rot1, rot2 +.if \rot1 >= \rot2 + bic \dst, \src1, \src2, ror #\rot1-\rot2 +.else + bic \dst, \src1, \src2, ror #32+\rot1-\rot2 +.endif +.endm + + +/****************************************************************************** + * Load 5 words from memory and XOR them all together. It is used to compute + * the parity columns for the Theta step. + * Note that all operands may be misaligned (i.e. rotated by a certain amount + * of bits), as well as the result. + * - dst destination register + * - src1-src5 source registers + * - rot1-rot5 rotation values + *****************************************************************************/ +.macro xor5 dst, src1, src2, src3, src4, src5, rot1, rot2, rot3, rot4, rot5 + ldr.w \dst, [r0, #\src1] // @slothy:reads=['r0\\src1'] + ldr.w r1, [r0, #\src2] // @slothy:reads=['r0\\src2'] + ldr.w r5, [r0, #\src3] // @slothy:reads=['r0\\src3'] + ldr r11, [r0, #\src4] // @slothy:reads=['r0\\src4'] + ldr r12, [r0, #\src5] // @slothy:reads=['r0\\src5'] + eorror \dst, \dst, r1, \rot1, \rot2 + eorror \dst, \dst, r5, \rot1, \rot3 + eorror \dst, \dst, r11, \rot1, \rot4 + eorror \dst, \dst, r12, \rot1, \rot5 +.endm + + +/****************************************************************************** + * Same as xor5, except that a previous result is stored on the stack after the + * loads from memory. This allows to have the str instruction for free. + * - dst destination register + * - src1-src5 source registers + * - rot1-rot5 rotation values + * - strreg register from previous calculations to be stored in memory + * - stradr register holding the address to store `prev` + * - strofs stack pointer memory offset for the str instruction + *****************************************************************************/ +.macro xor5str dst, src1, src2, src3, src4, src5, rot1, rot2, rot3, rot4, rot5, strreg, stradr, strofs + ldr.w \dst, [r0, #\src1] // @slothy:reads=['r0\\src1'] + ldr.w r1, [r0, #\src2] // @slothy:reads=['r0\\src2'] + ldr.w r5, [r0, #\src3] // @slothy:reads=['r0\\src3'] + ldr r11, [r0, #\src4] // @slothy:reads=['r0\\src4'] + ldr r12, [r0, #\src5] // @slothy:reads=['r0\\src5'] + str.w \strreg, [\stradr, #\strofs] // @slothy:writes=['\\stradr\\strofs'] + eorror \dst, \dst, r1, \rot1, \rot2 + eorror \dst, \dst, r5, \rot1, \rot3 + eorror \dst, \dst, r11, \rot1, \rot4 + eorror \dst, \dst, r12, \rot1, \rot5 +.endm + + +/****************************************************************************** + * Exclusive-OR where the 2nd operand is rotated by 1 bit to the left. + * - dst destination register + * - src1-src2 source registers + * - rot differential rotation btw src1 & src2 (i.e. rot=rot1-rot2) + *****************************************************************************/ +.macro xorrol dst, src1, src2, rot + eor \dst, \src1, \src2, ror #\rot-1 +.endm + + +/****************************************************************************** + * Bitslice implementation of the Chi step with misaligned operands. + * - resofs memory offset within the internal state to store the result + * - src1-src3 source registers + * - rot1-rot3 rotation values + *****************************************************************************/ +.macro xandnotlazystr resofs, src1, src2, src3, rot1, rot2, rot3 + bicror r1, \src3, \src2, \rot3, \rot2 + eorror r1, r1, \src1, \rot3, \rot1 + str.w r1, [r0, #\resofs] // @slothy:writes=['r0\\resofs'] +.endm + + +/****************************************************************************** + * Same as xandnotlazystr but without the str instruction which will be carried + * out later in order to take advantage of future ldr instructions. + * - src1-src3 source registers + * - rot1-rot3 rotation values + *****************************************************************************/ +.macro xandnotlazy src1, src2, src3, rot1, rot2, rot3 + bicror r1, \src3, \src2, \rot3, \rot2 + eorror r1, r1, \src1, \rot3, \rot1 +.endm + + +/****************************************************************************** + * Same as xandnotlazystr with an additional rotation in order to explictly + * compute the Rho step. It is useful in KeccakRound3 in order to return to the + * classical representation every 4 rounds. + * - resofs memory offset within the internal state to store the result + * - src1-src3 source registers + * - rot1-rot3 rotation values + *****************************************************************************/ +.macro xandnotstr resofs, src1, src2, src3, rot1, rot2, rot3 + bicror r1, \src3, \src2, \rot3, \rot2 + eorror r1, r1, \src1, \rot3, \rot1 +.if \rot3 > 0 + ror r1, r1, #32-\rot3 +.endif + str.w r1, [r0, #\resofs] // @slothy:writes=['r0\\resofs'] +.endm + + +/****************************************************************************** + * Same as xandnotstr but without the str instruction which will be carried + * out later in order to take advantage of future ldr instructions. + * - src1-src3 source registers + * - rot1-rot3 rotation values + *****************************************************************************/ +.macro xandnot src1, src2, src3, rot1, rot2, rot3 + bicror r1, \src3, \src2, \rot3, \rot2 + eorror r1, r1, \src1, \rot3, \rot1 +.if \rot3 > 0 + ror r1, r1, #32-\rot3 +.endif +.endm + + +/****************************************************************************** + * Same as xandnot followed by the Iota step. Note that the source registers + * are not specified since they are always r3, r4 and r5. + * - out output reg (useful to store the result in the next round) + * - rot2-rot3 rotation values + * - rcofs memory offset to load the round constant + * - last Boolean to indicate whether its the last round of the + * quadruple round routine + *****************************************************************************/ +.macro xandnotiota out, rot3, rot2, rcofs, last + bicror r5, r5, r4, \rot3, \rot2 + ldr r1, [sp, #mRC] // @slothy:reads=['spmRC'] + ldr r4, [r1, #\rcofs] // @slothy:reads=['r1\\rcofs'] +.if \last == 1 + ldr r7, [r1, #32]! // @slothy:reads=['r132'] + str r1, [sp, #mRC] // @slothy:writes=['spmRC'] + cmp r7, #0xFF +.endif +.if \rot3 > 0 + eor r3, r3, r5, ror #32-\rot3 +.else + eor.w r3, r3, r5 +.endif + eor.w \out, r4, r3 +.endm + + +/****************************************************************************** + * Add the parity bits to the state registers r3-r7. If the state registers are + * not properly aligned due to previous lazy rotations, use the barrel shifter + * to fix the misalignment when adding the parity bits. + * - par1-par5 registers containing the parity bits + * - dly1-dly5 rotation values to compute the (delayed) Rho step + *****************************************************************************/ +.macro addparity par1, dly1, par2, dly2, par3, dly3, par4, dly4, par5, dly5 +.if \dly1 > 0 + eor r3, \par1, r3, ror #32-\dly1 +.else + eor.w r3, \par1, r3 +.endif +.if \dly2 > 0 + eor r4, \par2, r4, ror #32-\dly2 +.else + eor.w r4, \par2, r4 +.endif +.if \dly3 > 0 + eor r5, \par3, r5, ror #32-\dly3 +.else + eor.w r5, \par3, r5 +.endif +.if \dly4 > 0 + eor r6, \par4, r6, ror #32-\dly4 +.else + eor.w r6, \par4, r6 +.endif +.if \dly5 > 0 + eor r7, \par5, r7, ror #32-\dly5 +.else + eor.w r7, \par5, r7 +.endif +.endm + + +/****************************************************************************** + * Apply Theta, Pi, Chi and Iota steps to half a plane (i.e. 5 32-bit words) of + * the internal state. + * Note that the Rho step is calculated if and only if \lazy == 0, otherwise it + * is delayed until the next round using ''lazy reductions'' thanks to the + * inline barrel shifter. + * - src1-src5 source registers + * - par1-par5 registers containing the parity bits + * - rot2-rot5 rotation values to compute the current Rho step + * - dly1-dly5 rotation values to compute the delayed Rho step + * - prev register from previous calculations to be stored in memory + * - strofs stack pointer memory offset for the str instruction + * - reg output reg related to the Iota step (to be stored later) + *****************************************************************************/ +.macro KeccakThetaRhoPiChiIota src1, par1, dly1, src2, par2, rot2, dly2, src3, par3, rot3, dly3, src4, par4, rot4, dly4, src5, par5, rot5, dly5, ofs, last, lazy, strofs, reg + ldr.w r3, [r0, #\src1] // @slothy:reads=['r0\\src1'] + ldr r4, [r0, #\src2] // @slothy:reads=['r0\\src2'] + ldr r5, [r0, #\src3] // @slothy:reads=['r0\\src3'] + ldr r6, [r0, #\src4] // @slothy:reads=['r0\\src4'] + ldr r7, [r0, #\src5] // @slothy:reads=['r0\\src5'] + str.w r1, [r0, #\strofs] // @slothy:writes=['r0\\strofs'] + addparity \par1, \dly1, \par2, \dly2, \par3, \dly3, \par4, \dly4, \par5, \dly5 +.if \lazy == 1 + xandnotlazystr \src2, r4, r5, r6, \rot2, \rot3, \rot4 + xandnotlazystr \src3, r5, r6, r7, \rot3, \rot4, \rot5 + xandnotlazystr \src4, r6, r7, r3, \rot4, \rot5, 0 + xandnotlazystr \src5, r7, r3, r4, \rot5, 0, \rot2 +.else + xandnotstr \src2, r4, r5, r6, \rot2, \rot3, \rot4 + xandnotstr \src3, r5, r6, r7, \rot3, \rot4, \rot5 + xandnotstr \src4, r6, r7, r3, \rot4, \rot5, 0 + xandnotstr \src5, r7, r3, r4, \rot5, 0, \rot2 +.endif + xandnotiota \reg, \rot3, \rot2, \ofs, \last +.endm + + +/****************************************************************************** + * Apply Theta, Pi, and Chi steps to half a plane (i.e. 5 32-bit words) of the + * internal state. + * Note that the Rho step is calculated if and only if \lazy == 0, otherwise it + * is delayed until the next round using ''lazy reductions'' thanks to the + * inline barrel shifter. + * - src1-src5 source registers + * - dst1-dst5 memory offsets to store the output registers + * - par1-par5 registers containing the parity bits + * - rot2-rot5 rotation values to compute the current Rho step + * - dly1-dly5 rotation values to compute the delayed Rho step + * - lazy Boolean to indicate whether lazy rotations are used or not + * - strofs stack pointer memory offset to store the last output of the + * previous round. + *****************************************************************************/ +.macro KeccakThetaRhoPiChi src1, dst1, par1, rot1, dly1, src2, dst2, par2, rot2, dly2, src3, dst3, par3, rot3, dly3, src4, dst4, par4, rot4, dly4, src5, dst5, par5, rot5, dly5, lazy, strofs + ldr.w r3, [r0, #\src1] // @slothy:reads=['r0\\src1'] + ldr.w r4, [r0, #\src2] // @slothy:reads=['r0\\src2'] + ldr.w r5, [r0, #\src3] // @slothy:reads=['r0\\src3'] + ldr.w r6, [r0, #\src4] // @slothy:reads=['r0\\src4'] + ldr.w r7, [r0, #\src5] // @slothy:reads=['r0\\src5'] + str.w r1, [r0, #\strofs] // @slothy:writes=['r0\\strofs'] + addparity \par1, \dly1, \par2, \dly2, \par3, \dly3, \par4, \dly4, \par5, \dly5 +.if \lazy == 1 + xandnotlazystr \dst1, r3, r4, r5, \rot1, \rot2, \rot3 + xandnotlazystr \dst2, r4, r5, r6, \rot2, \rot3, \rot4 + xandnotlazystr \dst3, r5, r6, r7, \rot3, \rot4, \rot5 + xandnotlazystr \dst4, r6, r7, r3, \rot4, \rot5, \rot1 + xandnotlazy r7, r3, r4, \rot5, \rot1, \rot2 +.else + xandnotstr \dst1, r3, r4, r5, \rot1, \rot2, \rot3 + xandnotstr \dst2, r4, r5, r6, \rot2, \rot3, \rot4 + xandnotstr \dst3, r5, r6, r7, \rot3, \rot4, \rot5 + xandnotstr \dst4, r6, r7, r3, \rot4, \rot5, \rot1 + xandnot r7, r3, r4, \rot5, \rot1, \rot2 +.endif +.endm + +.macro KeccakThetaRhoPiChiSkipStore src1, dst1, par1, rot1, dly1, src2, dst2, par2, rot2, dly2, src3, dst3, par3, rot3, dly3, src4, dst4, par4, rot4, dly4, src5, dst5, par5, rot5, dly5, lazy, strofs + ldr.w r3, [r0, #\src1] // @slothy:reads=['r0\\src1'] + ldr.w r4, [r0, #\src2] // @slothy:reads=['r0\\src2'] + ldr.w r5, [r0, #\src3] // @slothy:reads=['r0\\src3'] + ldr.w r6, [r0, #\src4] // @slothy:reads=['r0\\src4'] + ldr.w r7, [r0, #\src5] // @slothy:reads=['r0\\src5'] + addparity \par1, \dly1, \par2, \dly2, \par3, \dly3, \par4, \dly4, \par5, \dly5 +.if \lazy == 1 + xandnotlazystr \dst1, r3, r4, r5, \rot1, \rot2, \rot3 + xandnotlazystr \dst2, r4, r5, r6, \rot2, \rot3, \rot4 + xandnotlazystr \dst3, r5, r6, r7, \rot3, \rot4, \rot5 + xandnotlazystr \dst4, r6, r7, r3, \rot4, \rot5, \rot1 + xandnotlazy r7, r3, r4, \rot5, \rot1, \rot2 +.else + xandnotstr \dst1, r3, r4, r5, \rot1, \rot2, \rot3 + xandnotstr \dst2, r4, r5, r6, \rot2, \rot3, \rot4 + xandnotstr \dst3, r5, r6, r7, \rot3, \rot4, \rot5 + xandnotstr \dst4, r6, r7, r3, \rot4, \rot5, \rot1 + xandnot r7, r3, r4, \rot5, \rot1, \rot2 +.endif +.endm + +/****************************************************************************** + * 1st round of the 4 unrolled rounds routine due to in-place processing. + * At the beginning of such rounds, the internal state is expected to match the + * classical representation (i.e. without transition and no delayed Rho step). + *****************************************************************************/ +.macro KeccakRound0 + xor5 r3, Abu0, Agu0, Aku0, Amu0, Asu0, 0, 0, 0, 0, 0 + xor5 r7, Abe1, Age1, Ake1, Ame1, Ase1, 0, 0, 0, 0, 0 + xorrol r6, r3, r7, 32 + xor5str r4, Abi1, Agi1, Aki1, Ami1, Asi1, 0, 0, 0, 0, 0, r6, sp, mDa0 + eor.w r6, r3, r4 + xor5str r3, Abo0, Ago0, Ako0, Amo0, Aso0, 0, 0, 0, 0, 0, r6, sp, mDo1 + eor.w r2, r7, r3 + xor5 r7, Aba0, Aga0, Aka0, Ama0, Asa0, 0, 0, 0, 0, 0 + xorrol r10, r7, r4, 32 + xor5 r4, Abo1, Ago1, Ako1, Amo1, Aso1, 0, 0, 0, 0, 0 + eor r14, r4, r7 + xor5 r7, Abe0, Age0, Ake0, Ame0, Ase0, 0, 0, 0, 0, 0 + xorrol r6, r7, r4, 32 + xor5str r4, Abu1, Agu1, Aku1, Amu1, Asu1, 0, 0, 0, 0, 0, r6, sp, mDi0 + eor.w r8, r4, r7 + xor5str r7, Abi0, Agi0, Aki0, Ami0, Asi0, 0, 0, 0, 0, 0, r8, sp, mDa1 + xorrol r9, r7, r4, 32 + xor5str r4, Aba1, Aga1, Aka1, Ama1, Asa1, 0, 0, 0, 0, 0, r9, sp, mDo0 + eor r11, r4, r7 + xorrol r12, r3, r4, 32 + KeccakThetaRhoPiChiSkipStore Abo0, Aka1, r9, 14, 0, Agu0, Ame1, r12, 10, 0, Aka1, Asi1, r8, 2, 0, Ame1, Abo0, r11, 23, 0, Asi1, Agu0, r2, 31, 0, 1, Aka1 + KeccakThetaRhoPiChi Abe0, Asa1, r10, 0, 0, Agi1, Abe0, r2, 3, 0, Ako0, Agi1, r9, 12, 0, Amu1, Ako0, r14, 4, 0, Asa1, Amu1, r8, 9, 0, 1, Agu0 + ldr r8, [sp, #mDa0] // @slothy:reads=['spmDa0'] + KeccakThetaRhoPiChi Abu1, Aga0, r14, 14, 0, Aga0, Ake0, r8, 18, 0, Ake0, Ami1, r10, 5, 0, Ami1, Aso0, r2, 8, 0, Aso0, Abu1, r9, 28, 0, 1, Amu1 + KeccakThetaRhoPiChi Abi1, Ama0, r2, 31, 0, Ago0, Ase1, r9, 27, 0, Aku0, Abi1, r12, 19, 0, Ama0, Ago0, r8, 20, 0, Ase1, Aku0, r11, 1, 0, 1, Abu1 + ldr r9, [sp, #mDo1] // @slothy:reads=['spmDo1'] + KeccakThetaRhoPiChiIota Aba0, r8, 0, Age0, r10, 22, 0, Aki1, r2, 22, 0, Amo1, r9, 11, 0, Asu0, r12, 7, 0, 0, 0, 1, Aku0, r1 + ldr.w r2, [sp, #mDi0] // @slothy:reads=['spmDi0'] + KeccakThetaRhoPiChi Abo1, Aka0, r9, 14, 0, Agu1, Ame0, r14, 10, 0, Aka0, Asi0, r8, 1, 0, Ame0, Abo1, r10, 22, 0, Asi0, Agu1, r2, 30, 0, 1, Aba0 + KeccakThetaRhoPiChi Abe1, Asa0, r11, 1, 0, Agi0, Abe1, r2, 3, 0, Ako1, Agi0, r9, 13, 0, Amu0, Ako1, r12, 4, 0, Asa0, Amu0, r8, 9, 0, 1, Agu1 + ldr r8, [sp, #mDa1] // @slothy:reads=['spmDa1'] + KeccakThetaRhoPiChi Abu0, Aga1, r12, 13, 0, Aga1, Ake1, r8, 18, 0, Ake1, Ami0, r11, 5, 0, Ami0, Aso1, r2, 7, 0, Aso1, Abu0, r9, 28, 0, 1, Amu0 + KeccakThetaRhoPiChi Abi0, Ama1, r2, 31, 0, Ago1, Ase0, r9, 28, 0, Aku1, Abi0, r14, 20, 0, Ama1, Ago1, r8, 21, 0, Ase0, Aku1, r10, 1, 0, 1, Abu0 + ldr r9, [sp, #mDo0] // @slothy:reads=['spmDo0'] + KeccakThetaRhoPiChiIota Aba1, r8, 0, Age1, r11, 22, 0, Aki0, r2, 21, 0, Amo0, r9, 10, 0, Asu1, r14, 7, 0, 4, 0, 1, Aku1, r14 +.endm + + + +/****************************************************************************** + * 2nd round of the 4 unrolled rounds routine due to in-place processing. + *****************************************************************************/ +.macro KeccakRound1 + xor5str r3, Asu0, Agu0, Amu0, Abu1, Aku1, 22, 10, 3, 18, 28, r14, r0, Aba1 + xor5 r7, Age1, Ame0, Abe0, Ake1, Ase1, 10, 22, 4, 7, 20 + ror r3, #32-22 + xorrol r6, r3, r7, 32-10 + xor5str r4, Aki0, Asi0, Agi1, Ami0, Abi1, 7, 30, 9, 28, 1, r6, sp, mDa0 + eor r6, r3, r4, ror #32-7 + xor5str r3, Amo1, Abo0, Ako1, Aso0, Ago1, 0, 14, 1, 14, 31, r6, sp, mDo1 + eor r2, r3, r7, ror #32-10 + xor5 r7, Aba0, Aka1, Asa0, Aga0, Ama1, 0, 2, 13, 5, 20 + xorrol r10, r7, r4, 32-7 + xor5 r4, Amo0, Abo1, Ako0, Aso1, Ago0, 0, 14, 0, 13, 31 + eor r14, r4, r7 + xor5 r7, Age0, Ame1, Abe1, Ake0, Ase0, 11, 23, 4, 8, 21 + ror r7, #32-11 + xorrol r6, r7, r4, 32 + xor5str r4, Asu1, Agu1, Amu1, Abu0, Aku0, 22, 10, 3, 18, 27, r6, sp, mDi0 + eor r8, r7, r4, ror #32-22 + xor5str r7, Aki1, Asi1, Agi0, Ami1, Abi0, 7, 31, 9, 28, 1, r8, sp, mDa1 + ror r7, #32-7 + xorrol r9, r7, r4, 32-22 + xor5str r4, Aba1, Aka0, Asa1, Aga1, Ama0, 0, 1, 12, 5, 19, r9, sp, mDo0 + eor r11, r4, r7 + xorrol r12, r3, r4, 32 + KeccakThetaRhoPiChiSkipStore Amo1, Asa1, r9, 14, 0, Agu0, Ake1, r12, 10, 10, Asa1, Abi1, r8, 2, 12, Ake1, Amo1, r11, 23, 7, Abi1, Agu0, r2, 31, 1, 1, Asa1 + KeccakThetaRhoPiChi Age0, Ama0, r10, 0, 11, Asi0, Age0, r2, 3, 30, Ako1, Asi0, r9, 12, 1, Abu0, Ako1, r14, 4, 18, Ama0, Abu0, r8, 9, 19, 1, Agu0 + ldr r8, [sp, #mDa0] // @slothy:reads=['spmDa0'] + KeccakThetaRhoPiChi Asu1, Aka1, r14, 14, 22, Aka1, Abe1, r8, 18, 2, Abe1, Ami0, r10, 5, 4, Ami0, Ago1, r2, 8, 28, Ago1, Asu1, r9, 28, 31, 1, Abu0 + KeccakThetaRhoPiChi Aki0, Aga0, r2, 31, 7, Abo0, Ase1, r9, 27, 14, Amu0, Aki0, r12, 19, 3, Aga0, Abo0, r8, 20, 5, Ase1, Amu0, r11, 1, 20, 1, Asu1 + ldr r9, [sp, #mDo1] // @slothy:reads=['spmDo1'] + KeccakThetaRhoPiChiIota Aba0, r8, 0, Ame1, r10, 22, 23, Agi1, r2, 22, 9, Aso1, r9, 11, 13, Aku1, r12, 7, 28, 8, 0, 1, Amu0, r1 + ldr.w r2, [sp, #mDi0] // @slothy:reads=['spmDi0'] + KeccakThetaRhoPiChi Amo0, Asa0, r9, 14, 0, Agu1, Ake0, r14, 10, 10, Asa0, Abi0, r8, 1, 13, Ake0, Amo0, r10, 22, 8, Abi0, Agu1, r2, 30, 1, 1, Aba0 + KeccakThetaRhoPiChi Age1, Ama1, r11, 1, 10, Asi1, Age1, r2, 3, 31, Ako0, Asi1, r9, 13, 0, Abu1, Ako0, r12, 4, 18, Ama1, Abu1, r8, 9, 20, 1, Agu1 + ldr r8, [sp, #mDa1] // @slothy:reads=['spmDa1'] + KeccakThetaRhoPiChi Asu0, Aka0, r12, 13, 22, Aka0, Abe0, r8, 18, 1, Abe0, Ami1, r11, 5, 4, Ami1, Ago0, r2, 7, 28, Ago0, Asu0, r9, 28, 31, 1, Abu1 + KeccakThetaRhoPiChi Aki1, Aga1, r2, 31, 7, Abo1, Ase0, r9, 28, 14, Amu1, Aki1, r14, 20, 3, Aga1, Abo1, r8, 21, 5, Ase0, Amu1, r10, 1, 21, 1, Asu0 + ldr r9, [sp, #mDo0] // @slothy:reads=['spmDo0'] + KeccakThetaRhoPiChiIota Aba1, r8, 0, Ame0, r11, 22, 22, Agi0, r2, 21, 9, Aso0, r9, 10, 14, Aku0, r14, 7, 27, 12, 0, 1, Amu1, r14 +.endm + +/****************************************************************************** + * 3rd round of the 4 unrolled rounds routine due to in-place processing. + *****************************************************************************/ +.macro KeccakRound2 + xor5str r3, Aku1, Agu0, Abu1, Asu1, Amu1, 22, 10, 3, 18, 28, r14, r0, Aba1 + xor5 r7, Ame0, Ake0, Age0, Abe0, Ase1, 10, 22, 4, 7, 20 + ror r3, #32-22 + xorrol r6, r3, r7, 32-10 + xor5str r4, Agi0, Abi0, Asi0, Ami1, Aki0, 7, 30, 9, 28, 1, r6, sp, mDa0 + eor r6, r3, r4, ror #32-7 + xor5str r3, Aso1, Amo1, Ako0, Ago1, Abo1, 0, 14, 1, 14, 31, r6, sp, mDo1 + eor r2, r3, r7, ror #32-10 + xor5 r7, Aba0, Asa1, Ama1, Aka1, Aga1, 0, 2, 13, 5, 20 + xorrol r10, r7, r4, 32-7 + xor5 r4, Aso0, Amo0, Ako1, Ago0, Abo0, 0, 14, 0, 13, 31 + eor r14, r4, r7 + xor5 r7, Ame1, Ake1, Age1, Abe1, Ase0, 11, 23, 4, 8, 21 + ror r7, #32-11 + xorrol r6, r7, r4, 32 + xor5str r4, Aku0, Agu1, Abu0, Asu0, Amu0, 22, 10, 3, 18, 27, r6, sp, mDi0 + eor r8, r7, r4, ror #32-22 + xor5str r7, Agi1, Abi1, Asi1, Ami0, Aki1, 7, 31, 9, 28, 1, r8, sp, mDa1 + ror r7, #32-7 + xorrol r9, r7, r4, 32-22 + xor5str r4, Aba1, Asa0, Ama0, Aka0, Aga0, 0, 1, 12, 5, 19, r9, sp, mDo0 + eor r11, r4, r7 + xorrol r12, r3, r4, 32 + KeccakThetaRhoPiChiSkipStore Aso1, Ama0, r9, 14, 0, Agu0, Abe0, r12, 10, 10, Ama0, Aki0, r8, 2, 12, Abe0, Aso1, r11, 23, 7, Aki0, Agu0, r2, 31, 1, 1, Ama0 + KeccakThetaRhoPiChi Ame1, Aga0, r10, 0, 11, Abi0, Ame1, r2, 3, 30, Ako0, Abi0, r9, 12, 1, Asu0, Ako0, r14, 4, 18, Aga0, Asu0, r8, 9, 19, 1, Agu0 + ldr r8, [sp, #mDa0] // @slothy:reads=['spmDa0'] + KeccakThetaRhoPiChi Aku0, Asa1, r14, 14, 22, Asa1, Age1, r8, 18, 2, Age1, Ami1, r10, 5, 4, Ami1, Abo1, r2, 8, 28, Abo1, Aku0, r9, 28, 31, 1, Asu0 + KeccakThetaRhoPiChi Agi0, Aka1, r2, 31, 7, Amo1, Ase1, r9, 27, 14, Abu1, Agi0, r12, 19, 3, Aka1, Amo1, r8, 20, 5, Ase1, Abu1, r11, 1, 20, 1, Aku0 + ldr r9, [sp, #mDo1] // @slothy:reads=['spmDo1'] + KeccakThetaRhoPiChiIota Aba0, r8, 0, Ake1, r10, 22, 23, Asi0, r2, 22, 9, Ago0, r9, 11, 13, Amu1, r12, 7, 28, 16, 0, 1, Abu1, r1 + ldr.w r2, [sp, #mDi0] // @slothy:reads=['spmDi0'] + KeccakThetaRhoPiChi Aso0, Ama1, r9, 14, 0, Agu1, Abe1, r14, 10, 10, Ama1, Aki1, r8, 1, 13, Abe1, Aso0, r10, 22, 8, Aki1, Agu1, r2, 30, 1, 1, Aba0 + KeccakThetaRhoPiChi Ame0, Aga1, r11, 1, 10, Abi1, Ame0, r2, 3, 31, Ako1, Abi1, r9, 13, 0, Asu1, Ako1, r12, 4, 18, Aga1, Asu1, r8, 9, 20, 1, Agu1 + ldr r8, [sp, #mDa1] // @slothy:reads=['spmDa1'] + KeccakThetaRhoPiChi Aku1, Asa0, r12, 13, 22, Asa0, Age0, r8, 18, 1, Age0, Ami0, r11, 5, 4, Ami0, Abo0, r2, 7, 28, Abo0, Aku1, r9, 28, 31, 1, Asu1 + KeccakThetaRhoPiChi Agi1, Aka0, r2, 31, 7, Amo0, Ase0, r9, 28, 14, Abu0, Agi1, r14, 20, 3, Aka0, Amo0, r8, 21, 5, Ase0, Abu0, r10, 1, 21, 1, Aku1 + ldr r9, [sp, #mDo0] // @slothy:reads=['spmDo0'] + KeccakThetaRhoPiChiIota Aba1, r8, 0, Ake0, r11, 22, 22, Asi1, r2, 21, 9, Ago1, r9, 10, 14, Amu0, r14, 7, 27, 20, 0, 1, Abu0, r14 + +.endm + + +/****************************************************************************** + * 4th round of the 4 unrolled rounds routine due to in-place processing. + * Note that the Rho step is *not* delayed so that the internal state is + * compliant w/ the classical representation at the end of the routine. + *****************************************************************************/ +.macro KeccakRound3 + xor5str r3, Amu1, Agu0, Asu1, Aku0, Abu0, 22, 10, 3, 18, 28, r14, r0, Aba1 + xor5 r7, Ake0, Abe1, Ame1, Age0, Ase1, 10, 22, 4, 7, 20 + ror r3, #32-22 + xorrol r6, r3, r7, 32-10 + xor5str r4, Asi1, Aki1, Abi0, Ami0, Agi0, 7, 30, 9, 28, 1, r6, sp, mDa0 + eor r6, r3, r4, ror #32-7 + xor5str r3, Ago0, Aso1, Ako1, Abo1, Amo0, 0, 14, 1, 14, 31, r6, sp, mDo1 + eor r2, r3, r7, ror #32-10 + xor5 r7, Aba0, Ama0, Aga1, Asa1, Aka0, 0, 2, 13, 5, 20 + xorrol r10, r7, r4, 32-7 + xor5 r4, Ago1, Aso0, Ako0, Abo0, Amo1, 0, 14, 0, 13, 31 + eor r14, r4, r7 + xor5 r7, Ake1, Abe0, Ame0, Age1, Ase0, 11, 23, 4, 8, 21 + ror r7, #32-11 + xorrol r6, r7, r4, 32 + xor5str r4, Amu0, Agu1, Asu0, Aku1, Abu1, 22, 10, 3, 18, 27, r6, sp, mDi0 + eor r8, r7, r4, ror #32-22 + xor5str r7, Asi0, Aki0, Abi1, Ami1, Agi1, 7, 31, 9, 28, 1, r8, sp, mDa1 + ror r7, #32-7 + xorrol r9, r7, r4, 32-22 + xor5str r4, Aba1, Ama1, Aga0, Asa0, Aka1, 0, 1, 12, 5, 19, r9, sp, mDo0 + eor r11, r4, r7 + xorrol r12, r3, r4, 32 + KeccakThetaRhoPiChiSkipStore Ago0, Aga0, r9, 14, 0, Agu0, Age0, r12, 10, 10, Aga0, Agi0, r8, 2, 12, Age0, Ago0, r11, 23, 7, Agi0, Agu0, r2, 31, 1, 0, Aga0 + KeccakThetaRhoPiChi Ake1, Aka1, r10, 0, 11, Aki1, Ake1, r2, 3, 30, Ako1, Aki1, r9, 12, 1, Aku1, Ako1, r14, 4, 18, Aka1, Aku1, r8, 9, 19, 0, Agu0 + ldr r8, [sp, #mDa0] // @slothy:reads=['spmDa0'] + KeccakThetaRhoPiChi Amu0, Ama0, r14, 14, 22, Ama0, Ame0, r8, 18, 2, Ame0, Ami0, r10, 5, 4, Ami0, Amo0, r2, 8, 28, Amo0, Amu0, r9, 28, 31, 0, Aku1 + KeccakThetaRhoPiChi Asi1, Asa1, r2, 31, 7, Aso1, Ase1, r9, 27, 14, Asu1, Asi1, r12, 19, 3, Asa1, Aso1, r8, 20, 5, Ase1, Asu1, r11, 1, 20, 0, Amu0 + ldr r9, [sp, #mDo1] // @slothy:reads=['spmDo1'] + KeccakThetaRhoPiChiIota Aba0, r8, 0, Abe0, r10, 22, 23, Abi0, r2, 22, 9, Abo0, r9, 11, 13, Abu0, r12, 7, 28, 24, 0, 0, Asu1, r1 + ldr.w r2, [sp, #mDi0] // @slothy:reads=['spmDi0'] + KeccakThetaRhoPiChi Ago1, Aga1, r9, 14, 0, Agu1, Age1, r14, 10, 10, Aga1, Agi1, r8, 1, 13, Age1, Ago1, r10, 22, 8, Agi1, Agu1, r2, 30, 1, 0, Aba0 + KeccakThetaRhoPiChi Ake0, Aka0, r11, 1, 10, Aki0, Ake0, r2, 3, 31, Ako0, Aki0, r9, 13, 0, Aku0, Ako0, r12, 4, 18, Aka0, Aku0, r8, 9, 20, 0, Agu1 + ldr r8, [sp, #mDa1] // @slothy:reads=['spmDa1'] + KeccakThetaRhoPiChi Amu1, Ama1, r12, 13, 22, Ama1, Ame1, r8, 18, 1, Ame1, Ami1, r11, 5, 4, Ami1, Amo1, r2, 7, 28, Amo1, Amu1, r9, 28, 31, 0, Aku0 + KeccakThetaRhoPiChi Asi0, Asa0, r2, 31, 7, Aso0, Ase0, r9, 28, 14, Asu0, Asi0, r14, 20, 3, Asa0, Aso0, r8, 21, 5, Ase0, Asu0, r10, 1, 21, 0, Amu1 + ldr r9, [sp, #mDo0] // @slothy:reads=['spmDo0'] + KeccakThetaRhoPiChiIota Aba1, r8, 0, Abe1, r11, 22, 22, Abi1, r2, 21, 9, Abo1, r9, 10, 14, Abu1, r14, 7, 27, 28, 1, 0, Asu0, r1 + str.w r1, [r0, #Aba1] // @slothy:writes=['r0Aba1'] +.endm + +@---------------------------------------------------------------------------- +@ +@ void KeccakF1600_StatePermute( void *state ) +@ +.align 8 +.global MLD_ASM_NAMESPACE(keccak_f1600_x1_armv7m_asm) +.type MLD_ASM_NAMESPACE(keccak_f1600_x1_armv7m_asm),%function +MLD_ASM_FN_SYMBOL(keccak_f1600_x1_armv7m_asm) + push { r4 - r12, lr } + sub sp, #mSize + str r1, [sp, #mRC] +mld_keccak_f1600_x1_armv7m_asm_StatePermute_RoundLoop: + mld_keccak_f1600_x1_armv7m_asm_slothy_start: + // Instructions: 1425 + // Expected cycles: 1425 + // Expected IPC: 1.00 + // + // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500 525 550 575 600 625 650 675 700 725 750 775 800 825 850 875 900 925 950 975 1000 1025 1050 1075 1100 1125 1150 1175 1200 1225 1250 1275 1300 1325 1350 1375 1400 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------| + ldrd r6, r5, [r0, #72] // *................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Agu0', 'r0Agu1'] + ldrd r4, r8, [r0, #32] // .*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abu0', 'r0Abu1'] + ldrd r1, r14, [r0, #112] // ..*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aku0', 'r0Aku1'] + eor r8, r8, r5, ror #0-0 // ...*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldrd r12, r5, [r0, #152] // ....*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Amu0', 'r0Amu1'] + eor r8, r8, r14, ror #0-0 // .....*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r9, r14, [r0, #192] // ......*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu0', 'r0Asu1'] + eor r5, r8, r5, ror #0-0 // .......*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r4, r6, ror #0-0 // ........*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r7, r5, r14, ror #0-0 // .........*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r10, r8, r1, ror #0-0 // ..........*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r14, r1, [r0, #48] // ...........*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age0', 'r0Age1'] + ldrd r5, r8, [r0, #8] // ............*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abe0', 'r0Abe1'] + eor r6, r10, r12, ror #0-0 // .............*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r5, r14, ror #0-0 // ..............*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldrd r12, r14, [r0, #88] // ...............*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ake0', 'r0Ake1'] + eor r8, r8, r1, ror #0-0 // ................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldrd r1, r5, [r0, #128] // .................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ame0', 'r0Ame1'] + eor r8, r8, r14, ror #0-0 // ..................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldrd r10, r14, [r0, #168] // ...................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ase0', 'r0Ase1'] + eor r5, r8, r5, ror #0-0 // ....................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r8, r4, r12, ror #0-0 // .....................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r2, r5, r14, ror #0-0 // ......................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r6, r9, ror #0-0 // .......................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r8, r1, ror #0-0 // ........................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r8, r6, r2, ror #32-1 // .........................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r11, r5, r10, ror #0-0 // ..........................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r8, [r13, #0] // ...........................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDa0'] + eor r10, r7, r11 // ............................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r14, r1, [r0, #56] // .............................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agi0', 'r0Agi1'] + ldrd r8, r5, [r0, #16] // ..............................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abi0', 'r0Abi1'] + str r10, [r13, #4] // ...............................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['spmDa1'] + eor r14, r8, r14, ror #0-0 // ................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldrd r8, r4, [r0, #96] // .................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aki0', 'r0Aki1'] + eor r12, r5, r1, ror #0-0 // ..................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldrd r5, r10, [r0, #136] // ...................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ami0', 'r0Ami1'] + eor r8, r14, r8, ror #0-0 // ....................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldrd r1, r14, [r0, #176] // .....................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi0', 'r0Asi1'] + eor r5, r8, r5, ror #0-0 // ......................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r12, r4, ror #0-0 // .......................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r5, r1, ror #0-0 // ........................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r8, r8, r10, ror #0-0 // .........................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r9, r1, r7, ror #32-1 // ..........................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r8, r14, ror #0-0 // ...........................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r9, [r13, #8] // ............................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDo0'] + eor r8, r6, r5 // .............................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r8, [r13, #12] // ..............................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['spmDo1'] + ldrd r12, r4, [r0, #64] // ...............................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ago0', 'r0Ago1'] + ldrd r14, r8, [r0, #24] // ................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abo0', 'r0Abo1'] + ldrd r10, r6, [r0, #104] // .................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ako0', 'r0Ako1'] + eor r14, r14, r12, ror #0-0 // ..................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r8, r8, r4, ror #0-0 // ...................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r4, r14, r10, ror #0-0 // ....................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldrd r12, r10, [r0, #144] // .....................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amo0', 'r0Amo1'] + eor r8, r8, r6, ror #0-0 // ......................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r7, r14, [r0, #184] // .......................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aso0', 'r0Aso1'] + eor r12, r4, r12, ror #0-0 // ........................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r8, r8, r10, ror #0-0 // .........................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r12, r7, ror #0-0 // ..........................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r8, r14, ror #0-0 // ...........................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r10, r6, [r0, #40] // ............................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aga0', 'r0Aga1'] + ldrd r14, r8, [r0, #0] // .............................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aba0', 'r0Aba1'] + eor r12, r11, r4, ror #32-1 // ..............................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r14, r14, r10, ror #0-0 // ...............................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r8, r8, r6, ror #0-0 // ................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldrd r10, r11, [r0, #80] // .................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aka0', 'r0Aka1'] + eor r2, r2, r3 // ..................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r12, [r13, #16] // ...................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['spmDi0'] + eor r7, r14, r10, ror #0-0 // ....................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r6, r8, r11, ror #0-0 // .....................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r10, r11, [r0, #120] // ......................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ama0', 'r0Ama1'] + ldrd r14, r12, [r0, #160] // .......................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asa0', 'r0Asa1'] + ldr r8, [r0, #84] // ........................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aka1'] + eor r7, r7, r10, ror #0-0 // .........................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r6, r11, ror #0-0 // ..........................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r10, r7, r14, ror #0-0 // ...........................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r6, r12, ror #0-0 // ............................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r14, r4, r10 // .............................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r6, [r0, #24] // ..............................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abo0'] + eor r11, r7, r1 // ...............................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r12, r3, r7, ror #32-1 // ................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r10, r10, r5, ror #32-1 // .................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r3, [r0, #164] // ..................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Asa1'] + ldr r4, [r0, #180] // ...................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Asi1'] + ldr r1, [r13, #4] // ....................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['spmDa1'] + eor r5, r1, r8 // .....................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r7, [r0, #132] // ......................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ame1'] + eor r8, r11, r7 // .......................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r1, r3 // ........................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r3, r2, r4 // .........................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r7, r3, r8, ror #31-23 // ..........................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r9, r6 // ...........................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r6, r4, r3, ror #32+14-31 // ............................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r7, r5, ror #31-2 // .............................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r6, r8, ror #32+14-23 // ..............................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r7, [r0, #180] // ...............................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Asi1'] + bic r8, r8, r5, ror #23-2 // ................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r7, [r0, #72] // .................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agu0'] + eor r7, r12, r7 // ..................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r6, [r0, #24] // ...................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abo0'] + bic r5, r5, r7, ror #32+2-10 // ....................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r8, r8, r7, ror #23-10 // .....................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r6, [r0, #60] // ......................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agi1'] + str r8, [r0, #132] // .......................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ame1'] + bic r8, r7, r4, ror #32+10-14 // ........................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r7, [r0, #156] // .........................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu1'] + eor r8, r8, r3, ror #32+10-31 // ..........................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r14, r7 // ...........................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r5, r4, ror #32+2-14 // ............................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r2, r6 // .............................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r3, [r0, #84] // ..............................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aka1'] + str r8, [r0, #72] // ...............................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Agu0'] + ldr r8, [r0, #104] // ................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ako0'] + eor r8, r9, r8 // .................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r5, [r0, #8] // ..................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abe0'] + bic r6, r7, r8, ror #32+4-12 // ...................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r5, r10, r5 // ....................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r6, r6, r4, ror #4-3 // .....................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r3, r5, r1, ror #32+0-9 // ......................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r6, [r0, #8] // .......................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abe0'] + eor r3, r3, r7, ror #32+0-4 // ........................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r6, r4, r5, ror #3-0 // .........................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r3, [r0, #104] // ..........................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ako0'] + eor r3, r6, r1, ror #32+3-9 // ...........................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r6, [r0, #140] // ............................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ami1'] + bic r7, r1, r7, ror #9-4 // .............................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r4, r8, r4, ror #12-3 // ..............................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r3, [r0, #156] // ...............................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Amu1'] + eor r5, r4, r5, ror #12-0 // ................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r7, r7, r8, ror #32+9-12 // .................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r8, [r13, #0] // ..................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['spmDa0'] + ldr r1, [r0, #184] // ...................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aso0'] + ldr r3, [r0, #36] // ....................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abu1'] + ldr r4, [r0, #40] // .....................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aga0'] + str r5, [r0, #164] // ......................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asa1'] + ldr r5, [r0, #88] // .......................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ake0'] + eor r4, r8, r4 // ........................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r5, r10, r5 // .........................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r14, r3 // ..........................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r7, [r0, #60] // ...........................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Agi1'] + eor r6, r2, r6 // ............................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r9, r1 // .............................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r1, r4, r3, ror #18-14 // ..............................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r1, r1, r7, ror #32+18-28 // ...............................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r1, [r0, #36] // ................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Abu1'] + bic r1, r6, r5, ror #8-5 // .................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r1, r4, ror #32+8-18 // ..................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r4, r5, r4, ror #32+5-18 // ...................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r1, [r0, #88] // ....................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Ake0'] + eor r1, r4, r3, ror #32+5-14 // .....................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r4, [r0, #112] // ......................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aku0'] + str r1, [r0, #40] // .......................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aga0'] + bic r1, r3, r7, ror #32+14-28 // ........................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r3, r12, r4 // .........................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r7, r7, r6, ror #28-8 // ..........................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r4, [r0, #64] // ...........................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ago0'] + eor r5, r7, r5, ror #28-5 // ............................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r7, [r0, #120] // .............................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ama0'] + eor r4, r9, r4 // ..............................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r5, [r0, #140] // ...............................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ami1'] + eor r5, r1, r6, ror #14-8 // ................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r1, r8, r7 // .................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r7, r1, r3, ror #20-19 // ..................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r9, [r0, #172] // ...................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ase1'] + eor r7, r7, r4, ror #32+20-27 // ....................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r6, [r0, #20] // .....................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abi1'] + eor r6, r2, r6 // ......................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r7, [r0, #172] // .......................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ase1'] + bic r7, r3, r4, ror #32+19-27 // ........................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r5, [r0, #184] // .........................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aso0'] + eor r7, r7, r6, ror #32+19-31 // ..........................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r9, r11, r9 // ...........................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r7, [r0, #120] // ............................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ama0'] + bic r5, r6, r9, ror #31-1 // .............................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r7, r9, r1, ror #32+1-20 // ..............................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r5, r5, r1, ror #31-20 // ...............................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r1, r4, r6, ror #32+27-31 // ................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r6, [r13, #20] // .................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmRC'] + eor r9, r1, r9, ror #27-1 // ..................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r3, r7, r3, ror #32+1-19 // ...................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r7, [r0, #192] // ....................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Asu0'] + str r3, [r0, #20] // .....................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abi1'] + str r9, [r0, #112] // ......................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aku0'] + eor r1, r12, r7 // .......................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r7, [r0, #100] // ........................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aki1'] + eor r2, r2, r7 // .........................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r9, [r13, #12] // ..........................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmDo1'] + ldr r7, [r0, #0] // ...........................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aba0'] + str r5, [r0, #64] // ............................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ago0'] + ldr r5, [r0, #148] // .............................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amo1'] + eor r4, r9, r5 // ..............................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r7, r8, r7 // ...............................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r3, r1, r4, ror #32+7-11 // ................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r5, r7, r1, ror #32+0-7 // .................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r3, r2, ror #32+7-22 // ..................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r5, r5, r4, ror #32+0-11 // ...................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r3, [r0, #100] // ....................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Aki1'] + bic r4, r4, r2, ror #32+11-22 // .....................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r3, [r0, #48] // ......................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age0'] + eor r3, r10, r3 // .......................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r5, [r0, #148] // ........................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Amo1'] + eor r4, r4, r3, ror #32+11-22 // .........................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r5, r3, r7, ror #22-0 // ..........................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r4, [r0, #48] // ...........................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Age0'] + bic r2, r2, r3, ror #22-22 // ............................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r6, [r6, #0] // .............................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r10'] + eor r5, r5, r1, ror #22-7 // ..............................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r3, r7, r2, ror #32-22 // ...............................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r5, [r0, #192] // ................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Asu0'] + eor r1, r6, r3 // .................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r7, [r0, #12] // ..................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abe1'] + ldr r2, [r13, #16] // ...................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['spmDi0'] + ldr r5, [r0, #56] // ....................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Agi0'] + ldr r4, [r0, #108] // .....................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ako1'] + eor r3, r11, r7 // ......................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r7, [r0, #152] // .......................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu0'] + eor r5, r2, r5 // ........................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r1, [r0, #0] // .........................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aba0'] + eor r1, r9, r4 // ..........................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r6, r1, r5, ror #13-3 // ...........................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r4, [r0, #160] // ............................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asa0'] + eor r6, r6, r3, ror #13-1 // .............................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r8, r4 // ..............................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r6, [r0, #160] // ...............................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Asa0'] + eor r7, r12, r7 // ................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r6, r3, r4, ror #32+1-9 // .................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r3, r5, r3, ror #3-1 // ..................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r6, r6, r7, ror #32+1-4 // ...................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r3, r3, r4, ror #32+3-9 // ....................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r4, r4, r7, ror #9-4 // .....................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r6, [r0, #108] // ......................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ako1'] + str r3, [r0, #152] // .......................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Amu0'] + bic r3, r7, r1, ror #32+4-13 // ........................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r6, [r0, #80] // .........................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aka0'] + eor r8, r8, r6 // ..........................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r4, r1, ror #32+9-13 // ...........................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r3, r5, ror #4-3 // ............................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r4, [r0, #28] // .............................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abo1'] + str r1, [r0, #56] // ..............................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Agi0'] + str r3, [r0, #12] // ...............................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abe1'] + ldr r5, [r0, #176] // ................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Asi0'] + eor r7, r2, r5 // .................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r5, [r0, #128] // ..................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ame0'] + eor r5, r10, r5 // ...................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r1, [r0, #76] // ....................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Agu1'] + bic r3, r7, r5, ror #30-22 // .....................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r14, r1 // ......................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r3, r8, ror #30-1 // .......................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r9, r4 // ........................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r4, r5, r8, ror #22-1 // .........................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r8, r8, r6, ror #32+1-10 // ..........................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r4, r6, ror #22-10 // ...........................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r1, ror #32+1-14 // ............................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r4, [r0, #128] // .............................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ame0'] + str r8, [r0, #80] // ..............................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aka0'] + bic r8, r1, r7, ror #32+14-30 // ...............................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r3, [r0, #176] // ................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Asi0'] + ldr r3, [r0, #32] // .................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abu0'] + eor r3, r12, r3 // ..................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r5, r8, r5, ror #32+14-22 // ...................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r12, [r0, #92] // ....................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ake1'] + bic r1, r6, r1, ror #32+10-14 // .....................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r12, r11, r12 // ......................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r1, r7, ror #32+10-30 // .......................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r8, [r0, #188] // ........................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aso1'] + ldr r6, [r0, #136] // .........................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ami0'] + str r1, [r0, #76] // ..........................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Agu1'] + eor r7, r9, r8 // ...........................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r2, r6 // ............................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r1, r3, r7, ror #32+13-28 // .............................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r5, [r0, #28] // ..............................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abo1'] + eor r1, r1, r6, ror #13-7 // ...............................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r8, r7, r6, ror #28-7 // ................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r6, r6, r12, ror #7-5 // .................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r5, [r0, #44] // ..................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aga1'] + eor r4, r8, r12, ror #28-5 // ...................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r8, [r13, #4] // ....................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['spmDa1'] + str r4, [r0, #136] // .....................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ami0'] + eor r4, r8, r5 // ......................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r5, [r0, #116] // .......................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aku1'] + eor r5, r14, r5 // ........................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r1, [r0, #188] // .........................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aso1'] + bic r1, r12, r4, ror #32+5-18 // ..........................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r12, r6, r4, ror #32+7-18 // ...........................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r1, r3, ror #32+5-13 // ............................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r12, [r0, #92] // .............................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ake1'] + bic r1, r4, r3, ror #18-13 // ..............................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r6, [r0, #44] // ...............................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aga1'] + eor r7, r1, r7, ror #32+18-28 // ................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r6, [r0, #16] // .................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abi0'] + ldr r1, [r0, #68] // ..................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ago1'] + ldr r12, [r0, #124] // ...................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ama1'] + ldr r4, [r0, #168] // ....................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ase0'] + str r7, [r0, #32] // .....................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abu0'] + eor r3, r2, r6 // ......................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r9, r1 // .......................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r8, r12 // ........................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r1, r5, r7, ror #32+20-28 // .........................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r10, r4 // ..........................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r12, r1, r3, ror #32+20-31 // ...........................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r1, r6, r5, ror #21-20 // ............................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r12, [r0, #124] // .............................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ama1'] + eor r1, r1, r7, ror #32+21-28 // ..............................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r10, r4, r6, ror #32+1-21 // ...............................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r1, [r0, #168] // ................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Ase0'] + eor r10, r10, r5, ror #32+1-20 // .................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r1, r3, r4, ror #31-1 // ..................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r10, [r0, #16] // ...................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abi0'] + eor r1, r1, r6, ror #31-21 // ....................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r5, r7, r3, ror #32+28-31 // .....................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r1, [r0, #68] // ......................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ago1'] + eor r7, r5, r4, ror #28-1 // .......................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r6, [r13, #8] // ........................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['spmDo0'] + ldr r4, [r0, #4] // .........................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aba1'] + ldr r12, [r0, #52] // ..........................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age1'] + ldr r10, [r0, #96] // ...........................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aki0'] + ldr r1, [r0, #144] // ............................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amo0'] + ldr r5, [r0, #196] // .............................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu1'] + str r7, [r0, #116] // ..............................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aku1'] + eor r4, r8, r4 // ...............................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r12, r11, r12 // ................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r10, r2, r10 // .................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r6, r1 // ..................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r14, r14, r5 // ...................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r5, r1, r10, ror #32+10-21 // ....................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r8, r14, r1, ror #32+7-10 // .....................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r5, r12, ror #32+10-22 // ......................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r10, ror #32+7-21 // .......................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r5, [r0, #52] // ........................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Age1'] + str r8, [r0, #96] // .........................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aki0'] + bic r5, r4, r14, ror #32+0-7 // ..........................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r8, r12, r4, ror #22-0 // ...........................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r5, r1, ror #32+0-10 // ............................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r14, ror #22-7 // .............................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r5, [r0, #144] // ..............................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Amo0'] + str r8, [r0, #196] // ...............................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Asu1'] + bic r5, r10, r12, ror #32+21-22 // ................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r8, [r13, #20] // .................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmRC'] + ldr r7, [r8, #4] // ..................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r14'] + eor r6, r4, r5, ror #32-21 // ...................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldrd r14, r4, [r0, #72] // ....................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Agu0', 'r0Agu1'] + ldrd r5, r8, [r0, #192] // .....................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu0', 'r0Asu1'] + ldrd r10, r1, [r0, #152] // ......................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu0', 'r0Amu1'] + eor r5, r5, r14, ror #22-10 // .......................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r4, ror #22-10 // ........................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldrd r12, r14, [r0, #32] // .........................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abu0', 'r0Abu1'] + eor r5, r5, r10, ror #22-3 // ..........................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r1, ror #22-3 // ...........................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r10, r5, r14, ror #22-18 // ............................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r14, r8, r12, ror #22-18 // .............................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r5, r1, [r0, #112] // ..............................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aku0', 'r0Aku1'] + eor r8, r7, r6 // ...............................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r8, [r0, #4] // ................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Aba1'] + eor r3, r10, r1, ror #32+22-28 // .................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r14, r5, ror #32+22-27 // ..................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldrd r10, r1, [r0, #128] // ...................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ame0', 'r0Ame1'] + ldrd r9, r12, [r0, #48] // ....................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Age0', 'r0Age1'] + ldrd r6, r8, [r0, #8] // .....................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abe0', 'r0Abe1'] + eor r5, r9, r1, ror #32+11-23 // ......................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r14, r12, r10, ror #32+10-22 // .......................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r5, r8, ror #11-4 // ........................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldrd r12, r10, [r0, #88] // .........................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ake0', 'r0Ake1'] + eor r5, r14, r6, ror #10-4 // ..........................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r1, r14, [r0, #168] // ...........................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ase0', 'r0Ase1'] + eor r5, r5, r10, ror #10-7 // ............................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r12, ror #11-8 // .............................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r2, r5, r14, ror #32+10-20 // ..............................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r12, r8, r1, ror #32+11-21 // ...............................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ror r9, r3, #10 // ................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r8, r9, r2, ror #22-1 // .................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ror r7, r12, #21 // ..................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r8, [r13, #0] // ...................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['spmDa0'] + eor r11, r7, r4, ror #10 // ....................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldrd r12, r5, [r0, #176] // .....................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi0', 'r0Asi1'] + ldrd r10, r8, [r0, #96] // ......................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aki0', 'r0Aki1'] + ldrd r1, r14, [r0, #56] // .......................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agi0', 'r0Agi1'] + eor r5, r8, r5, ror #32+7-31 // ........................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r8, r10, r12, ror #32+7-30 // .........................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r5, r1, ror #32+7-9 // ..........................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r12, r10, [r0, #136] // ...........................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ami0', 'r0Ami1'] + eor r8, r8, r14, ror #32+7-9 // ............................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r1, r14, [r0, #16] // .............................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abi0', 'r0Abi1'] + eor r5, r8, r12, ror #32+7-28 // ..............................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r8, r6, r10, ror #32+7-28 // ...............................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r3, r5, r14, ror #7-1 // ................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r11, [r13, #4] // .................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDa1'] + eor r5, r8, r1, ror #7-1 // ..................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r8, r9, r3, ror #25 // ...................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ror r11, r5, #25 // ....................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r8, [r13, #12] // .....................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDo1'] + eor r9, r11, r4, ror #10-1 // ......................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r5, r12, [r0, #24] // .......................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abo0', 'r0Abo1'] + ldrd r10, r8, [r0, #144] // ........................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Amo0', 'r0Amo1'] + ldrd r1, r14, [r0, #104] // .........................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ako0', 'r0Ako1'] + eor r5, r8, r5, ror #32+0-14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r10, r12, ror #32+0-14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r12, r5, r14, ror #32+0-1 // ............................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r10, r5, [r0, #184] // .............................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aso0', 'r0Aso1'] + eor r8, r8, r1, ror #0-0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldrd r1, r14, [r0, #64] // ...............................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ago0', 'r0Ago1'] + eor r5, r8, r5, ror #32+0-13 // ................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r8, r12, r10, ror #32+0-14 // .................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r5, r1, ror #32+0-31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r9, [r13, #8] // ...................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['spmDo0'] + eor r6, r8, r14, ror #32+0-31 // ....................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r5, r7, r4, ror #32-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r2, r6, r2, ror #22 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r5, [r13, #16] // .......................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDi0'] + ldrd r10, r14, [r0, #80] // ........................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aka0', 'r0Aka1'] + ldrd r5, r8, [r0, #0] // .........................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aba0', 'r0Aba1'] + ldrd r1, r7, [r0, #160] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asa0', 'r0Asa1'] + eor r14, r5, r14, ror #32+0-2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r10, ror #32+0-1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r12, r14, r1, ror #32+0-13 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r5, r10, [r0, #40] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aga0', 'r0Aga1'] + eor r8, r8, r7, ror #32+0-12 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldrd r1, r14, [r0, #120] // ................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ama0', 'r0Ama1'] + eor r5, r12, r5, ror #32+0-5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r10, ror #32+0-5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r5, r5, r14, ror #32+0-20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r8, r8, r1, ror #32+0-19 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r10, r5, r3, ror #25-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r12, [r0, #108] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ako1'] + eor r11, r8, r11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r9, r12, ror #32-1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r12, r6, r8, ror #32-1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r6, [r0, #32] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abu0'] + ldr r8, [r0, #176] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi0'] + ldr r3, [r0, #48] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age0'] + eor r14, r4, r5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r14, r6, ror #32-18 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r6, r2, r8, ror #32-30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r8, r1, r7, ror #32+4-12 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r3, r10, r3, ror #32-11 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r4, r7, r6, ror #12-3 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r8, r8, r6, ror #4-3 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r4, r4, r3, ror #12-0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r5, [r0, #120] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ama0'] + str r4, [r0, #120] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ama0'] + ldr r4, [r13, #4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmDa1'] + eor r5, r4, r5, ror #32-19 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r8, [r0, #48] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Age0'] + bic r8, r6, r3, ror #3-0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r3, r3, r5, ror #32+0-9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r6, [r0, #148] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amo1'] + eor r3, r3, r1, ror #32+0-4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r1, r5, r1, ror #9-4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r3, [r0, #108] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ako1'] + eor r5, r8, r5, ror #32+3-9 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r1, r1, r7, ror #32+9-12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r5, [r0, #32] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abu0'] + ldr r8, [r0, #72] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Agu0'] + str r1, [r0, #176] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Asi0'] + ldr r7, [r0, #20] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abi1'] + ldr r1, [r0, #164] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asa1'] + eor r3, r2, r7, ror #32-1 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r12, r8, ror #32-10 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r4, r4, r1, ror #32-12 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r9, r6 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r5, [r0, #92] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ake1'] + bic r8, r4, r7, ror #32+2-10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r11, r5, ror #32-7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r8, r1, ror #32+2-14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r8, r6, r4, ror #23-2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r5, [r0, #164] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Asa1'] + bic r5, r7, r1, ror #32+10-14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r7, ror #23-10 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r5, r5, r3, ror #32+10-31 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r8, [r0, #92] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Ake1'] + bic r8, r3, r6, ror #31-23 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r7, [r0, #196] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu1'] + eor r8, r8, r4, ror #31-2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r5, [r0, #72] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Agu0'] + str r8, [r0, #20] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abi1'] + bic r1, r1, r3, ror #32+14-31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r5, [r0, #136] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ami0'] + eor r8, r1, r6, ror #32+14-23 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r2, r5, ror #32-28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r4, [r0, #12] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abe1'] + str r8, [r0, #148] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Amo1'] + ldr r1, [r0, #84] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aka1'] + eor r5, r10, r4, ror #32-4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r8, [r13, #0] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['spmDa0'] + eor r4, r8, r1, ror #32-2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r1, r6, r5, ror #8-5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r3, [r0, #68] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ago1'] + eor r1, r1, r4, ror #32+8-18 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r9, r3, ror #32-31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r1, [r0, #12] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Abe1'] + bic r1, r3, r6, ror #28-8 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r14, r7, ror #32-22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r1, r5, ror #28-5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r5, r5, r4, ror #32+5-18 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r4, r4, r7, ror #18-14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r1, [r0, #136] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ami0'] + bic r1, r7, r3, ror #32+14-28 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r4, r4, r3, ror #32+18-28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r5, r5, r7, ror #32+5-14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r3, [r0, #24] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abo0'] + eor r1, r1, r6, ror #14-8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r3, r9, r3, ror #32-14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r1, [r0, #68] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ago1'] + ldr r9, [r0, #172] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ase1'] + ldr r7, [r0, #96] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aki0'] + ldr r6, [r0, #60] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Agi1'] + str r4, [r0, #196] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asu1'] + eor r4, r2, r6, ror #32-9 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r2, r7, ror #32-7 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r11, r9, ror #32-20 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r9, [r0, #40] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aga0'] + str r5, [r0, #84] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aka1'] + eor r7, r8, r9, ror #32-5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r2, r3, r6, ror #32+27-31 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r5, [r0, #152] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu0'] + eor r9, r2, r1, ror #27-1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r2, r1, r7, ror #32+1-20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r1, r6, r1, ror #31-1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r9, [r0, #152] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Amu0'] + eor r9, r12, r5, ror #32-3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r1, r7, ror #31-20 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r5, r9, r3, ror #32+19-27 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r1, [r0, #24] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abo0'] + eor r2, r2, r9, ror #32+1-19 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r9, r7, r9, ror #20-19 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r5, r6, ror #32+19-31 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r2, [r0, #96] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aki0'] + str r5, [r0, #40] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aga0'] + ldr r6, [r0, #132] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ame1'] + ldr r2, [r0, #116] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aku1'] + eor r7, r10, r6, ror #32-23 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r2, r12, r2, ror #32-28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r6, r9, r3, ror #32+20-27 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r5, [r0, #0] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aba0'] + str r6, [r0, #172] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ase1'] + eor r9, r8, r5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r3, r4, r7, ror #22-22 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r1, r9, r2, ror #32+0-7 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r5, r7, r9, ror #22-0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r9, r3, ror #32-22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r6, [r13, #20] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmRC'] + ldr r6, [r6, #8] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r18'] + eor r6, r6, r3 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r6, [r0, #0] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aba0'] + ldr r3, [r0, #188] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aso1'] + ldr r9, [r13, #12] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['spmDo1'] + eor r3, r9, r3, ror #32-13 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r5, r2, ror #22-7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r6, r3, r4, ror #32+11-22 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r5, [r0, #116] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Aku1'] + eor r7, r6, r7, ror #32+11-22 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r6, [r0, #76] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agu1'] + eor r1, r1, r3, ror #32+0-11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r3, r2, r3, ror #32+7-11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r1, [r0, #188] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aso1'] + str r7, [r0, #132] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ame1'] + eor r1, r3, r4, ror #32+7-22 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r2, [r13, #16] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmDi0'] + eor r4, r14, r6, ror #32-10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r1, [r0, #60] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Agi1'] + ldr r3, [r0, #144] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Amo0'] + ldr r6, [r0, #160] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Asa0'] + ldr r7, [r0, #88] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ake0'] + eor r5, r8, r6, ror #32-13 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r6, r10, r7, ror #32-8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r7, [r0, #16] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abi0'] + bic r1, r6, r5, ror #22-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r9, r3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r1, r4, ror #22-10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r2, r7, ror #32-1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r1, [r0, #88] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ake0'] + bic r1, r5, r4, ror #32+1-10 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r4, r4, r3, ror #32+10-14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r1, r3, ror #32+1-14 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r3, r3, r7, ror #32+14-30 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r1, [r0, #160] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Asa0'] + eor r1, r4, r7, ror #32+10-30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r4, [r0, #124] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ama1'] + str r1, [r0, #76] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Agu1'] + ldr r1, [r0, #36] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abu1'] + eor r8, r8, r4, ror #32-20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r1, r12, r1, ror #32-18 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r3, r3, r6, ror #32+14-22 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r6, r7, r6, ror #30-22 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r4, [r0, #104] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ako0'] + eor r6, r6, r5, ror #30-1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r5, r8, r1, ror #9-4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r7, [r0, #52] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age1'] + eor r4, r9, r4 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r3, [r0, #144] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Amo0'] + eor r3, r5, r4, ror #32+9-13 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r5, [r0, #180] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Asi1'] + str r3, [r0, #180] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Asi1'] + str r6, [r0, #16] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Abi0'] + eor r3, r11, r7, ror #32-10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r2, r5, ror #32-31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r5, r1, r4, ror #32+4-13 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r6, r7, r3, ror #3-1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r4, r4, r7, ror #13-3 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r5, r7, ror #4-3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r6, r8, ror #32+3-9 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r5, [r0, #52] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Age1'] + eor r4, r4, r3, ror #13-1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r5, [r0, #140] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ami1'] + str r4, [r0, #124] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ama1'] + eor r4, r2, r5, ror #32-28 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r6, [r0, #36] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abu1'] + ldr r6, [r0, #192] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Asu0'] + ldr r5, [r0, #8] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abe0'] + eor r6, r12, r6, ror #32-22 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r7, r11, r5, ror #32-4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r5, r3, r8, ror #32+1-9 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r8, [r13, #4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['spmDa1'] + ldr r12, [r0, #80] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aka0'] + eor r5, r5, r1, ror #32+1-4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r8, r12, ror #32-1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r5, [r0, #104] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ako0'] + ldr r5, [r0, #64] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ago0'] + bic r1, r7, r3, ror #32+5-18 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r9, r5, ror #32-31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r12, r1, r6, ror #32+5-13 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r1, r5, r4, ror #28-7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r12, [r0, #80] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aka0'] + eor r12, r1, r7, ror #28-5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r1, r3, r6, ror #18-13 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r6, r6, r5, ror #32+13-28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r12, [r0, #140] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ami1'] + eor r1, r1, r5, ror #32+18-28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r5, r6, r4, ror #13-7 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r6, [r0, #44] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aga1'] + ldr r12, [r0, #156] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu1'] + str r5, [r0, #64] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ago0'] + bic r5, r4, r7, ror #7-5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r7, [r0, #168] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ase0'] + ldr r4, [r0, #100] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aki1'] + eor r5, r5, r3, ror #32+7-18 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r1, [r0, #192] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asu0'] + str r5, [r0, #8] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abe0'] + ldr r1, [r0, #28] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abo1'] + eor r3, r2, r4, ror #32-7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r4, r9, r1, ror #32-14 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r5, r14, r12, ror #32-3 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r9, r8, r6, ror #32-5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r1, r5, r4, ror #32+20-28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r6, r9, r5, ror #21-20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r1, r1, r3, ror #32+20-31 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r12, r10, r7, ror #32-21 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r1, [r0, #44] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aga1'] + bic r1, r12, r9, ror #32+1-21 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r10, r6, r4, ror #32+21-28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r1, r1, r5, ror #32+1-20 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r10, [r0, #168] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ase0'] + bic r5, r3, r12, ror #31-1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r1, [r0, #100] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aki1'] + eor r1, r5, r9, ror #31-21 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r5, r4, r3, ror #32+28-31 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r1, [r0, #28] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abo1'] + eor r6, r5, r12, ror #28-1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r4, [r13, #8] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmDo0'] + ldr r12, [r0, #4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aba1'] + ldr r9, [r0, #128] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ame0'] + ldr r10, [r0, #56] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Agi0'] + ldr r1, [r0, #184] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aso0'] + ldr r5, [r0, #112] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aku0'] + str r6, [r0, #156] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Amu1'] + eor r6, r8, r12 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r12, r2, r10, ror #32-9 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r4, r1, ror #32-14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r10, r11, r9, ror #32-22 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r8, r1, r12, ror #32+10-21 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r14, r14, r5, ror #32-27 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r8, r10, ror #32+10-22 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r8, r14, r1, ror #32+7-10 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r5, [r0, #128] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Ame0'] + eor r8, r8, r12, ror #32+7-21 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r5, r6, r14, ror #32+0-7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r8, [r0, #56] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Agi0'] + eor r4, r5, r1, ror #32+0-10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r8, r10, r6, ror #22-0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r4, [r0, #184] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aso0'] + eor r8, r8, r14, ror #22-7 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r5, r12, r10, ror #32+21-22 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r8, [r0, #112] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aku0'] + ldr r8, [r13, #20] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmRC'] + eor r5, r6, r5, ror #32-21 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r8, [r8, #12] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r112'] + eor r8, r8, r5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r8, [r0, #4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aba1'] + ldrd r10, r1, [r0, #72] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Agu0', 'r0Agu1'] + ldrd r5, r8, [r0, #112] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aku0', 'r0Aku1'] + ldrd r12, r14, [r0, #32] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abu0', 'r0Abu1'] + eor r10, r8, r10, ror #22-10 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r8, r5, r1, ror #22-10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldrd r1, r5, [r0, #192] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Asu0', 'r0Asu1'] + eor r14, r10, r14, ror #22-3 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r12, ror #22-3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r11, r14, r5, ror #22-18 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r8, r1, ror #22-18 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldrd r14, r1, [r0, #88] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ake0', 'r0Ake1'] + ldrd r5, r8, [r0, #128] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ame0', 'r0Ame1'] + ldrd r10, r4, [r0, #48] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age0', 'r0Age1'] + eor r14, r5, r14, ror #32+10-22 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r1, ror #32+11-23 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r12, r14, r10, ror #10-4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldrd r1, r5, [r0, #8] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abe0', 'r0Abe1'] + eor r8, r8, r4, ror #11-4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldrd r10, r14, [r0, #152] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu0', 'r0Amu1'] + eor r7, r8, r5, ror #11-8 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r8, r12, r1, ror #10-7 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldrd r1, r5, [r0, #168] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ase0', 'r0Ase1'] + eor r3, r11, r14, ror #32+22-28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r6, r10, ror #32+22-27 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r2, r8, r5, ror #32+10-20 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r7, r1, ror #32+11-21 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ror r9, r3, #10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r9, r2, ror #22-1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ror r6, r1, #21 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r5, [r13, #0] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDa0'] + eor r11, r6, r4, ror #10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r7, r8, [r0, #16] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abi0', 'r0Abi1'] + ldrd r5, r10, [r0, #56] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Agi0', 'r0Agi1'] + ldrd r1, r12, [r0, #176] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Asi0', 'r0Asi1'] + eor r8, r10, r8, ror #32+7-31 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r5, r7, ror #32+7-30 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r7, r8, r12, ror #32+7-9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldrd r14, r8, [r0, #136] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ami0', 'r0Ami1'] + eor r12, r5, r1, ror #32+7-9 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r10, r1, [r0, #96] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aki0', 'r0Aki1'] + eor r5, r12, r8, ror #32+7-28 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r7, r14, ror #32+7-28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r3, r5, r10, ror #7-1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r11, [r13, #4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDa1'] + eor r5, r8, r1, ror #7-1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r9, r3, ror #25 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ror r11, r5, #25 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r8, [r13, #12] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['spmDo1'] + eor r9, r11, r4, ror #10-1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldrd r4, r8, [r0, #144] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Amo0', 'r0Amo1'] + ldrd r12, r10, [r0, #184] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aso0', 'r0Aso1'] + ldrd r14, r1, [r0, #104] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ako0', 'r0Ako1'] + eor r5, r10, r8, ror #32+0-14 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r8, r12, r4, ror #32+0-14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r4, r5, r14, ror #32+0-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r12, r5, [r0, #64] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ago0', 'r0Ago1'] + eor r8, r8, r1, ror #0-0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r10, r1, [r0, #24] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abo0', 'r0Abo1'] + eor r5, r4, r5, ror #32+0-14 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r12, ror #32+0-13 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r5, r1, ror #32+0-31 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r8, r10, ror #32+0-31 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r2, r7, r2, ror #22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r14, r12, [r0, #120] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ama0', 'r0Ama1'] + ldrd r10, r1, [r0, #160] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Asa0', 'r0Asa1'] + eor r6, r6, r4, ror #32-1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldrd r5, r8, [r0, #0] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aba0', 'r0Aba1'] + str r6, [r13, #16] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['spmDi0'] + ldr r6, [r0, #8] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abe0'] + eor r5, r5, r1, ror #32+0-2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r8, r8, r10, ror #32+0-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r12, r5, r12, ror #32+0-13 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r1, r5, [r0, #80] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aka0', 'r0Aka1'] + eor r8, r8, r14, ror #32+0-12 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldrd r10, r14, [r0, #40] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aga0', 'r0Aga1'] + eor r5, r12, r5, ror #32+0-5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r1, ror #32+0-5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r5, r14, ror #32+0-20 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r10, ror #32+0-19 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r14, r4, r1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r5, [r0, #72] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Agu0'] + eor r10, r1, r3, ror #25-1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r11, r8, r11 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r12, r7, r8, ror #32-1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r8, [r13, #4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['spmDa1'] + eor r4, r12, r5, ror #32-10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r3, [r0, #120] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ama0'] + ldr r7, [r0, #188] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aso1'] + eor r5, r8, r3, ror #32-12 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r1, [r0, #96] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aki0'] + eor r6, r11, r6, ror #32-7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r9, r7 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r2, r1, ror #32-1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r1, r5, r4, ror #32+2-10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r9, [r13, #8] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDo0'] + eor r1, r1, r3, ror #32+2-14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r1, [r0, #120] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ama0'] + bic r1, r3, r7, ror #32+14-31 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r3, r4, r3, ror #32+10-14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r1, r6, ror #32+14-23 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r3, r3, r7, ror #32+10-31 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r1, [r0, #188] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Aso1'] + bic r1, r6, r5, ror #23-2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r6, r7, r6, ror #31-23 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r3, [r0, #72] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Agu0'] + eor r6, r6, r5, ror #31-2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r7, [r0, #16] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abi0'] + eor r1, r1, r4, ror #23-10 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r5, [r0, #40] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aga0'] + eor r3, r2, r7, ror #32-30 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r6, [r0, #96] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aki0'] + eor r6, r8, r5, ror #32-19 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r4, [r0, #132] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ame1'] + ldr r5, [r0, #104] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ako0'] + eor r7, r10, r4, ror #32-11 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r1, [r0, #8] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abe0'] + eor r5, r9, r5, ror #32-1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r4, r3, r7, ror #3-0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r1, [r0, #192] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu0'] + eor r8, r4, r6, ror #32+3-9 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r14, r1, ror #32-18 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r8, [r0, #192] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Asu0'] + bic r1, r4, r5, ror #32+4-12 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r8, r5, r3, ror #12-3 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r1, r3, ror #4-3 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r1, r6, r4, ror #9-4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r3, [r0, #132] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ame1'] + bic r3, r7, r6, ror #32+0-9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r1, r1, r5, ror #32+9-12 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r5, [r0, #52] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Age1'] + ldr r6, [r0, #112] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aku0'] + str r1, [r0, #16] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abi0'] + eor r1, r14, r6, ror #32-22 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r7, r8, r7, ror #12-0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r8, [r0, #28] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abo1'] + eor r6, r3, r4, ror #32+0-4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r9, r8, ror #32-31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r7, [r0, #40] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Aga0'] + ldr r7, [r0, #140] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ami1'] + str r6, [r0, #104] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ako0'] + ldr r8, [r13, #0] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmDa0'] + eor r6, r2, r7, ror #32-28 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r10, r5, ror #32-4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r7, r1, r4, ror #32+14-28 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r5, r4, r6, ror #28-8 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r7, r7, r6, ror #14-8 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r5, r5, r3, ror #28-5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r7, [r0, #28] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abo1'] + ldr r7, [r0, #164] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Asa1'] + str r5, [r0, #140] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Ami1'] + eor r7, r8, r7, ror #32-2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r5, r6, r3, ror #8-5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r6, [r0, #84] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aka1'] + eor r5, r5, r7, ror #32+8-18 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r3, r3, r7, ror #32+5-18 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r7, r7, r1, ror #18-14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r5, [r0, #52] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Age1'] + eor r1, r3, r1, ror #32+5-14 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r7, r4, ror #32+18-28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r7, [r0, #172] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ase1'] + ldr r3, [r0, #56] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Agi0'] + str r1, [r0, #164] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Asa1'] + ldr r5, [r0, #148] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amo1'] + str r4, [r0, #112] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aku0'] + eor r3, r2, r3, ror #32-7 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r1, [r0, #36] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abu1'] + eor r4, r9, r5, ror #32-14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r12, r1, ror #32-3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r11, r7, ror #32-20 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r1, r5, r4, ror #32+19-27 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r6, r8, r6, ror #32-5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r9, r1, r3, ror #32+19-31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r1, r4, r3, ror #32+27-31 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r9, [r0, #84] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aka1'] + bic r9, r3, r7, ror #31-1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r3, r7, r6, ror #32+1-20 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r1, r1, r7, ror #27-1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r3, r3, r5, ror #32+1-19 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r7, [r0, #176] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi0'] + bic r5, r6, r5, ror #20-19 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r3, [r0, #56] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Agi0'] + eor r5, r5, r4, ror #32+20-27 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r4, r9, r6, ror #31-20 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r1, [r0, #36] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abu1'] + ldr r1, [r0, #64] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ago0'] + ldr r9, [r13, #12] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['spmDo1'] + str r5, [r0, #172] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ase1'] + ldr r3, [r0, #156] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu1'] + eor r7, r2, r7, ror #32-9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r9, r1, ror #32-13 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r12, r3, ror #32-28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r2, [r0, #92] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ake1'] + str r4, [r0, #148] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Amo1'] + eor r3, r10, r2, ror #32-23 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r4, r6, r1, ror #32+7-11 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r2, [r0, #0] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aba0'] + eor r5, r4, r7, ror #32+7-22 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r4, r8, r2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r5, [r0, #176] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asi0'] + bic r5, r4, r6, ror #32+0-7 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r2, r1, r7, ror #32+11-22 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r5, r1, ror #32+0-11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r1, r7, r3, ror #22-22 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r2, r2, r3, ror #32+11-22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r5, [r0, #64] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ago0'] + bic r3, r3, r4, ror #22-0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r7, [r0, #124] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ama1'] + ldr r5, [r0, #76] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Agu1'] + eor r1, r4, r1, ror #32-22 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r6, r3, r6, ror #22-7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r7, r8, r7, ror #32-13 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r6, [r0, #156] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Amu1'] + ldr r4, [r0, #100] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aki1'] + str r2, [r0, #92] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Ake1'] + ldr r6, [r0, #12] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abe1'] + ldr r2, [r13, #20] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmRC'] + ldr r3, [r2, #16] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r116'] + eor r6, r10, r6, ror #32-8 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r1, r3, r1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r2, [r13, #16] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmDi0'] + eor r3, r2, r4, ror #32-1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r1, [r0, #0] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aba0'] + bic r1, r3, r6, ror #30-22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r4, [r0, #184] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aso0'] + eor r1, r1, r7, ror #30-1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r4, r9, r4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r1, [r0, #100] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aki1'] + bic r1, r4, r3, ror #32+14-30 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r5, r14, r5, ror #32-10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r1, r1, r6, ror #32+14-22 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r6, r6, r7, ror #22-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r1, [r0, #184] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aso0'] + bic r1, r5, r4, ror #32+10-14 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r6, r5, ror #22-10 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r7, r7, r5, ror #32+1-10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r5, [r0, #108] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ako1'] + eor r1, r1, r3, ror #32+10-30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r6, [r0, #12] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abe1'] + ldr r3, [r0, #128] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ame0'] + eor r4, r7, r4, ror #32+1-14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r7, [r0, #44] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aga1'] + str r4, [r0, #124] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Ama1'] + eor r6, r11, r3, ror #32-10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r7, ror #32-20 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r7, [r0, #20] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abi1'] + str r1, [r0, #76] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Agu1'] + eor r3, r2, r7, ror #32-31 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r7, [r0, #196] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu1'] + eor r1, r9, r5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r4, r1, r3, ror #13-3 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r7, r12, r7, ror #32-18 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r4, r6, ror #13-1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r4, r6, r8, ror #32+1-9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r5, [r0, #44] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aga1'] + eor r5, r4, r7, ror #32+1-4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r4, r3, r6, ror #3-1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r5, [r0, #108] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ako1'] + bic r6, r7, r1, ror #32+4-13 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r5, r8, r7, ror #9-4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r6, r3, ror #4-3 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r1, r5, r1, ror #32+9-13 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r3, [r0, #128] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Ame0'] + ldr r6, [r0, #48] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age0'] + eor r8, r4, r8, ror #32+3-9 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r11, r6, ror #32-4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r8, [r0, #196] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Asu1'] + ldr r8, [r13, #4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmDa1'] + str r1, [r0, #20] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abi1'] + ldr r5, [r0, #116] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aku1'] + ldr r4, [r0, #160] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asa0'] + eor r7, r12, r5, ror #32-22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r8, r4, ror #32-1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r5, [r0, #136] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ami0'] + ldr r1, [r0, #24] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abo0'] + eor r4, r2, r5, ror #32-28 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r5, r3, r6, ror #32+5-18 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r12, r9, r1, ror #32-31 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r1, r5, r7, ror #32+5-13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r5, r4, r3, ror #7-5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str r1, [r0, #160] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asa0'] + eor r1, r5, r6, ror #32+7-18 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r5, r12, r4, ror #28-7 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r1, [r0, #48] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Age0'] + bic r1, r6, r7, ror #18-13 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r7, r7, r12, ror #32+13-28 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r5, r3, ror #28-5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r1, r12, ror #32+18-28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r12, [r0, #168] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ase0'] + str r1, [r0, #116] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aku1'] + eor r1, r7, r4, ror #13-7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r5, [r0, #136] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ami0'] + ldr r5, [r0, #144] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Amo0'] + str r1, [r0, #24] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abo0'] + eor r7, r10, r12, ror #32-21 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r4, r9, r5, ror #32-14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r5, [r0, #32] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abu0'] + ldr r1, [r0, #80] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aka0'] + eor r5, r14, r5, ror #32-3 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r6, r8, r1, ror #32-5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r3, [r0, #60] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agi1'] + bic r1, r6, r5, ror #21-20 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r10, r5, r4, ror #32+20-28 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r1, r4, ror #32+21-28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r2, r3, ror #32-7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r1, [r0, #168] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ase0'] + bic r1, r7, r6, ror #32+1-21 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r9, r10, r3, ror #32+20-31 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r1, r5, ror #32+1-20 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. + str r9, [r0, #80] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aka0'] + str r1, [r0, #60] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Agi1'] + bic r1, r3, r7, ror #31-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r12, r4, r3, ror #32+28-31 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r1, r6, ror #31-21 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r12, r7, ror #28-1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ + str r5, [r0, #144] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Amo0'] + ldr r7, [r13, #8] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmDo0'] + ldr r12, [r0, #4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aba1'] + ldr r6, [r0, #88] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ake0'] + ldr r10, [r0, #180] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi1'] + ldr r1, [r0, #68] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ago1'] + ldr r5, [r0, #152] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Amu0'] + str r4, [r0, #32] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Abu0'] + eor r4, r8, r12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r12, r2, r10, ror #32-9 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r1, r7, r1, ror #32-14 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r10, r11, r6, ror #32-22 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r8, r1, r12, ror #32+10-21 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r14, r14, r5, ror #32-27 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r8, r10, ror #32+10-22 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r8, r14, r1, ror #32+7-10 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ + str r5, [r0, #88] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ake0'] + eor r5, r8, r12, ror #32+7-21 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r8, r4, r14, ror #32+0-7 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... + str r5, [r0, #180] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asi1'] + eor r5, r8, r1, ror #32+0-10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r8, r10, r4, ror #22-0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. + str r5, [r0, #68] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ago1'] + eor r8, r8, r14, ror #22-7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r5, r12, r10, ror #32+21-22 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... + str r8, [r0, #152] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Amu0'] + ldr r8, [r13, #20] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['spmRC'] + eor r14, r4, r5, ror #32-21 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ + ldrd r2, r7, [r0, #168] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ase0', 'r0Ase1'] + ldr r8, [r8, #20] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r120'] + eor r11, r8, r14 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r5, r12, [r0, #72] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Agu0', 'r0Agu1'] + ldrd r10, r8, [r0, #152] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu0', 'r0Amu1'] + ldrd r1, r14, [r0, #192] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu0', 'r0Asu1'] + eor r5, r8, r5, ror #22-10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r10, r12, ror #22-10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... + eor r12, r5, r14, ror #22-3 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r5, r10, [r0, #112] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aku0', 'r0Aku1'] + eor r8, r8, r1, ror #22-3 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. + ldrd r1, r14, [r0, #32] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abu0', 'r0Abu1'] + eor r5, r12, r5, ror #22-18 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r10, ror #22-18 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. + eor r6, r5, r1, ror #32+22-28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. + eor r4, r8, r14, ror #32+22-27 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ + ldrd r14, r10, [r0, #8] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abe0', 'r0Abe1'] + ldrd r5, r8, [r0, #88] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ake0', 'r0Ake1'] + ldrd r12, r1, [r0, #128] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ame0', 'r0Ame1'] + eor r14, r8, r14, ror #32+11-23 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ + eor r8, r5, r10, ror #32+10-22 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... + eor r14, r14, r12, ror #11-4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... + ldrd r10, r5, [r0, #48] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age0', 'r0Age1'] + eor r8, r8, r1, ror #10-4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... + ror r3, r6, #10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r14, r5, ror #11-8 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. + eor r8, r8, r10, ror #10-7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. + eor r5, r5, r2, ror #32+11-21 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ + eor r8, r8, r7, ror #32+10-20 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... + ror r7, r5, #21 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. + eor r12, r7, r4, ror #10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. + eor r14, r3, r8, ror #22-1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ + str r12, [r13, #4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDa1'] + ldrd r1, r5, [r0, #176] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi0', 'r0Asi1'] + ldrd r6, r10, [r0, #96] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aki0', 'r0Aki1'] + str r14, [r13, #0] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['spmDa0'] + str r11, [r0, #4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aba1'] + eor r1, r1, r6, ror #32+7-31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................... + ldrd r6, r2, [r0, #184] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aso0', 'r0Aso1'] + ldrd r9, r12, [r0, #64] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ago0', 'r0Ago1'] + eor r5, r5, r10, ror #32+7-30 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... + eor r10, r9, r2, ror #32+0-14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. + ldrd r11, r14, [r0, #104] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ako0', 'r0Ako1'] + eor r6, r12, r6, ror #32+0-14 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ + ldrd r9, r2, [r0, #24] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abo0', 'r0Abo1'] + eor r6, r6, r11, ror #0-0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. + eor r12, r10, r14, ror #32+0-1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. + eor r9, r6, r9, ror #32+0-13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ + ldrd r10, r6, [r0, #16] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abi0', 'r0Abi1'] + eor r14, r12, r2, ror #32+0-14 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... + ldrd r2, r12, [r0, #136] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ami0', 'r0Ami1'] + eor r1, r1, r6, ror #32+7-9 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ + ldrd r11, r6, [r0, #56] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agi0', 'r0Agi1'] + eor r1, r1, r12, ror #32+7-28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... + eor r5, r5, r10, ror #32+7-9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... + eor r1, r1, r6, ror #7-1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... + eor r10, r5, r2, ror #32+7-28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... + ldrd r6, r2, [r0, #144] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Amo0', 'r0Amo1'] + eor r10, r10, r11, ror #7-1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. + ldrd r12, r11, [r0, #120] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ama0', 'r0Ama1'] + eor r6, r14, r6, ror #32+0-31 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... + ror r1, r1, #25 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................. + eor r5, r3, r10, ror #25 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................. + ldrd r3, r14, [r0, #0] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aba0', 'r0Aba1'] + str r5, [r13, #12] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDo1'] + eor r5, r14, r11, ror #32+0-1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... + eor r14, r9, r2, ror #32+0-31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... + eor r9, r1, r4, ror #10-1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ + eor r2, r6, r8, ror #22 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... + ldrd r11, r8, [r0, #40] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aga0', 'r0Aga1'] + eor r3, r3, r12, ror #32+0-2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... + eor r7, r7, r14, ror #32-1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... + eor r8, r3, r8, ror #32+0-13 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... + str r7, [r13, #16] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['spmDi0'] + ldrd r7, r12, [r0, #160] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Asa0', 'r0Asa1'] + ldr r3, [r0, #56] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Agi0'] + eor r11, r5, r11, ror #32+0-12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................... + eor r4, r8, r12, ror #32+0-5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................. + ldrd r5, r12, [r0, #80] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aka0', 'r0Aka1'] + eor r3, r2, r3, ror #32-1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ + eor r11, r11, r7, ror #32+0-5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... + eor r7, r4, r5, ror #32+0-20 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... + ldr r8, [r13, #4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmDa1'] + eor r12, r11, r12, ror #32+0-19 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + eor r14, r14, r7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... + eor r11, r12, r1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... + ldr r5, [r0, #48] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age0'] + eor r10, r7, r10, ror #25-1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... + eor r5, r11, r5, ror #32-7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... + eor r12, r6, r12, ror #32-1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. + ldr r6, [r0, #40] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aga0'] + ldr r1, [r0, #64] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ago0'] + eor r6, r8, r6, ror #32-12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... + bic r4, r3, r5, ror #31-23 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................. + ldr r7, [r0, #72] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Agu0'] + eor r4, r4, r6, ror #31-2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ + eor r7, r12, r7, ror #32-10 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................... + ror r4, r4, #32-31 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... + str r4, [r0, #56] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Agi0'] + eor r4, r9, r1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ + bic r1, r6, r7, ror #32+2-10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... + str r9, [r13, #8] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDo0'] + eor r1, r1, r4, ror #32+2-14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... + bic r6, r5, r6, ror #23-2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... + ror r1, r1, #32-2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... + str r1, [r0, #40] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aga0'] + bic r1, r4, r3, ror #32+14-31 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. + eor r6, r6, r7, ror #23-10 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ + bic r4, r7, r4, ror #32+10-14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... + ror r7, r6, #32-23 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................. + ldr r6, [r0, #84] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aka1'] + str r7, [r0, #48] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Age0'] + eor r1, r1, r5, ror #32+14-23 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... + ldr r5, [r0, #108] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ako1'] + eor r7, r4, r3, ror #32+10-31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... + eor r5, r9, r5, ror #32-1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ + eor r4, r8, r6, ror #32-19 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... + ldr r8, [r0, #92] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ake1'] + ror r6, r1, #32-14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... + ldr r3, [r0, #100] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aki1'] + eor r8, r10, r8, ror #32-11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... + str r6, [r0, #64] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ago0'] + eor r6, r2, r3, ror #32-30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. + ror r3, r7, #32-10 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................ + str r3, [r0, #72] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Agu0'] + bic r1, r5, r6, ror #12-3 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................. + bic r7, r8, r4, ror #32+0-9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. + eor r3, r1, r8, ror #12-0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ + bic r8, r6, r8, ror #3-0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... + ror r3, r3, #32-12 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... + eor r1, r8, r4, ror #32+3-9 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... + ldr r8, [r0, #116] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aku1'] + str r3, [r0, #84] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aka1'] + eor r3, r14, r8, ror #32-18 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... + ror r8, r1, #32-3 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... + str r8, [r0, #116] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aku1'] + bic r4, r4, r3, ror #9-4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... + eor r7, r7, r3, ror #32+0-4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. + eor r4, r4, r5, ror #32+9-12 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................. + ldr r1, [r0, #128] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ame0'] + ror r4, r4, #32-9 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... + str r4, [r0, #100] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aki1'] + bic r4, r3, r5, ror #32+4-12 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. + eor r1, r10, r1, ror #32-4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ + eor r3, r4, r6, ror #4-3 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... + ldr r8, [r0, #136] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ami0'] + ldr r5, [r0, #152] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu0'] + eor r4, r2, r8, ror #32-28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ + ldr r8, [r13, #0] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................... // @slothy:reads=['spmDa0'] + eor r5, r14, r5, ror #32-22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................... + ldr r6, [r0, #120] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ama0'] + str r7, [r0, #108] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ako1'] + eor r6, r8, r6, ror #32-2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... + bic r7, r4, r1, ror #8-5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. + ror r3, r3, #32-4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. + eor r7, r7, r6, ror #32+8-18 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ + str r3, [r0, #92] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... // @slothy:writes=['r0Ake1'] + ror r7, r7, #32-8 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. + ldr r3, [r0, #144] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. // @slothy:reads=['r0Amo0'] + str r7, [r0, #128] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ // @slothy:writes=['r0Ame0'] + bic r7, r1, r6, ror #32+5-18 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... + eor r3, r9, r3, ror #32-31 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... + eor r7, r7, r5, ror #32+5-14 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... + bic r6, r6, r5, ror #18-14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ + bic r5, r5, r3, ror #32+14-28 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... + ror r7, r7, #32-5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... + eor r5, r5, r4, ror #14-8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... + bic r4, r3, r4, ror #28-8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... + str r7, [r0, #120] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... // @slothy:writes=['r0Ama0'] + ror r5, r5, #32-14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. + str r5, [r0, #144] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. // @slothy:writes=['r0Amo0'] + eor r5, r4, r1, ror #28-5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ + ldr r4, [r0, #188] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... // @slothy:reads=['r0Aso1'] + ror r5, r5, #32-28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. + eor r1, r6, r3, ror #32+18-28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. + ldr r3, [r0, #180] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ // @slothy:reads=['r0Asi1'] + ror r1, r1, #32-18 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... + str r5, [r0, #136] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... // @slothy:writes=['r0Ami0'] + ldr r5, [r0, #196] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... // @slothy:reads=['r0Asu1'] + ldr r6, [r0, #164] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ // @slothy:reads=['r0Asa1'] + ldr r7, [r0, #172] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... // @slothy:reads=['r0Ase1'] + str r1, [r0, #152] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... // @slothy:writes=['r0Amu0'] + eor r9, r9, r4, ror #32-14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... + eor r5, r12, r5, ror #32-3 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... + eor r1, r8, r6, ror #32-5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... + eor r3, r2, r3, ror #32-7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. + bic r4, r1, r5, ror #20-19 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. + eor r7, r11, r7, ror #32-20 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ + eor r4, r4, r9, ror #32+20-27 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... + ldr r6, [r0, #16] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. // @slothy:reads=['r0Abi0'] + ror r4, r4, #32-20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. + str r4, [r0, #172] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ // @slothy:writes=['r0Ase1'] + eor r4, r2, r6, ror #32-9 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... + bic r6, r5, r9, ror #32+19-27 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... + bic r2, r7, r1, ror #32+1-20 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... + eor r6, r6, r3, ror #32+19-31 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ + eor r5, r2, r5, ror #32+1-19 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... + bic r2, r3, r7, ror #31-1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... + ror r6, r6, #32-19 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... + eor r2, r2, r1, ror #31-20 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... + ldr r1, [r0, #24] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... // @slothy:reads=['r0Abo0'] + bic r9, r9, r3, ror #32+27-31 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. + str r6, [r0, #164] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. // @slothy:writes=['r0Asa1'] + eor r9, r9, r7, ror #27-1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ + ror r6, r5, #32-1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... + ldr r5, [r0, #0] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. // @slothy:reads=['r0Aba0'] + ror r7, r2, #32-31 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. + ldr r2, [r0, #8] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ // @slothy:reads=['r0Abe0'] + str r7, [r0, #188] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... // @slothy:writes=['r0Aso1'] + str r6, [r0, #180] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... // @slothy:writes=['r0Asi1'] + ror r6, r9, #32-27 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... + ldr r9, [r13, #12] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ // @slothy:reads=['spmDo1'] + ldr r7, [r0, #32] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... // @slothy:reads=['r0Abu0'] + eor r3, r9, r1, ror #32-13 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... + eor r1, r12, r7, ror #32-28 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... + eor r7, r8, r5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... + bic r5, r1, r3, ror #32+7-11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... + eor r2, r10, r2, ror #32-23 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. + eor r5, r5, r4, ror #32+7-22 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. + str r6, [r0, #196] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ // @slothy:writes=['r0Asu1'] + ror r6, r5, #32-7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... + bic r5, r3, r4, ror #32+11-22 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. + str r6, [r0, #16] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. // @slothy:writes=['r0Abi0'] + eor r5, r5, r2, ror #32+11-22 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ + bic r6, r7, r1, ror #32+0-7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... + ror r5, r5, #32-11 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... + str r5, [r0, #8] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... // @slothy:writes=['r0Abe0'] + eor r5, r6, r3, ror #32+0-11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ + ldr r6, [r0, #76] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... // @slothy:reads=['r0Agu1'] + str r5, [r0, #24] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... // @slothy:writes=['r0Abo0'] + bic r5, r2, r7, ror #22-0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... + bic r4, r4, r2, ror #22-22 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... + ldr r2, [r13, #16] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... // @slothy:reads=['spmDi0'] + eor r1, r5, r1, ror #22-7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. + ldr r5, [r13, #20] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................. // @slothy:reads=['spmRC'] + ror r3, r1, #32-22 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ + str r3, [r0, #32] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... // @slothy:writes=['r0Abu0'] + ldr r1, [r5, #24] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................. // @slothy:reads=['r124'] + eor r3, r7, r4, ror #32-22 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. + eor r4, r14, r6, ror #32-10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ + eor r3, r1, r3 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... + ldr r1, [r0, #60] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... // @slothy:reads=['r0Agi1'] + ldr r5, [r0, #44] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... // @slothy:reads=['r0Aga1'] + ldr r6, [r0, #52] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ // @slothy:reads=['r0Age1'] + eor r5, r8, r5, ror #32-13 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... + eor r6, r10, r6, ror #32-8 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... + eor r7, r2, r1, ror #32-1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... + bic r1, r6, r5, ror #22-1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... + str r3, [r0, #0] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... // @slothy:writes=['r0Aba0'] + bic r3, r7, r6, ror #30-22 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. + eor r1, r1, r4, ror #22-10 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. + eor r3, r3, r5, ror #30-1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ + bic r5, r5, r4, ror #32+1-10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... + ror r3, r3, #32-30 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. + str r3, [r0, #60] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................. // @slothy:writes=['r0Agi1'] + ldr r3, [r0, #68] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ // @slothy:reads=['r0Ago1'] + ror r1, r1, #32-22 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... + eor r3, r9, r3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... + str r1, [r0, #52] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... // @slothy:writes=['r0Age1'] + bic r1, r4, r3, ror #32+10-14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ + eor r5, r5, r3, ror #32+1-14 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... + eor r1, r1, r7, ror #32+10-30 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... + bic r7, r3, r7, ror #32+14-30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... + ror r1, r1, #32-10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... + eor r7, r7, r6, ror #32+14-22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... + str r1, [r0, #76] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................. // @slothy:writes=['r0Agu1'] + ldr r1, [r0, #88] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. // @slothy:reads=['r0Ake0'] + ldr r4, [r0, #104] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ // @slothy:reads=['r0Ako0'] + eor r3, r11, r1, ror #32-10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... + ror r7, r7, #32-14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. + ror r6, r5, #32-1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. + ldr r5, [r0, #80] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ // @slothy:reads=['r0Aka0'] + eor r4, r9, r4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................... + eor r5, r8, r5, ror #32-20 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................... + ldr r1, [r0, #112] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... // @slothy:reads=['r0Aku0'] + str r6, [r0, #44] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ // @slothy:writes=['r0Aga1'] + eor r6, r12, r1, ror #32-18 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... + ldr r1, [r0, #96] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... // @slothy:reads=['r0Aki0'] + str r7, [r0, #68] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... // @slothy:writes=['r0Ago1'] + eor r7, r2, r1, ror #32-31 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... + bic r8, r6, r4, ror #32+4-13 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... + bic r1, r7, r3, ror #3-1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. + eor r8, r8, r7, ror #4-3 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. + bic r7, r4, r7, ror #13-3 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ + eor r1, r1, r5, ror #32+3-9 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... + eor r7, r7, r3, ror #13-1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. + ror r8, r8, #32-4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. + ror r7, r7, #32-13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................ + str r8, [r0, #88] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... // @slothy:writes=['r0Ake0'] + ror r8, r1, #32-3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... + str r7, [r0, #80] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... // @slothy:writes=['r0Aka0'] + str r8, [r0, #112] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ // @slothy:writes=['r0Aku0'] + ldr r8, [r0, #148] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... // @slothy:reads=['r0Amo1'] + bic r3, r3, r5, ror #32+1-9 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... + ldr r7, [r0, #140] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... // @slothy:reads=['r0Ami1'] + bic r1, r5, r6, ror #9-4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... + ldr r5, [r0, #132] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... // @slothy:reads=['r0Ame1'] + eor r1, r1, r4, ror #32+9-13 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. + ldr r4, [r0, #124] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. // @slothy:reads=['r0Ama1'] + eor r3, r3, r6, ror #32+1-4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ + ror r6, r1, #32-9 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... + eor r1, r11, r5, ror #32-4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. + str r6, [r0, #96] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. // @slothy:writes=['r0Aki0'] + eor r6, r2, r7, ror #32-28 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ + eor r7, r9, r8, ror #32-31 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... + ldr r8, [r13, #4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... // @slothy:reads=['spmDa1'] + eor r4, r8, r4, ror #32-1 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... + ror r5, r3, #32-1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ + str r5, [r0, #104] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... // @slothy:writes=['r0Ako0'] + bic r5, r6, r1, ror #7-5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... + ldr r3, [r0, #156] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... // @slothy:reads=['r0Amu1'] + eor r5, r5, r4, ror #32+7-18 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... + eor r3, r12, r3, ror #32-22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... + ror r5, r5, #32-7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. + str r5, [r0, #132] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. // @slothy:writes=['r0Ame1'] + bic r12, r1, r4, ror #32+5-18 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................ + bic r5, r7, r6, ror #28-7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... + eor r12, r12, r3, ror #32+5-13 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. + eor r1, r5, r1, ror #28-5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. + ldr r5, [r0, #176] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................ // @slothy:reads=['r0Asi0'] + ror r12, r12, #32-5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... + eor r5, r2, r5, ror #32-7 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... + bic r4, r4, r3, ror #18-13 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... + str r12, [r0, #124] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................ // @slothy:writes=['r0Ama1'] + ror r1, r1, #32-28 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... + str r1, [r0, #140] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... // @slothy:writes=['r0Ami1'] + eor r4, r4, r7, ror #32+18-28 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... + bic r1, r3, r7, ror #32+13-28 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... + ror r12, r4, #32-18 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... + eor r1, r1, r6, ror #13-7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. + ldr r7, [r0, #184] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. // @slothy:reads=['r0Aso0'] + ror r1, r1, #32-13 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ + str r1, [r0, #148] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... // @slothy:writes=['r0Amo1'] + str r12, [r0, #156] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. // @slothy:writes=['r0Amu1'] + ldr r12, [r0, #168] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. // @slothy:reads=['r0Ase0'] + eor r3, r9, r7, ror #32-14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ + ldr r6, [r0, #192] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................... // @slothy:reads=['r0Asu0'] + ldr r1, [r0, #160] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... // @slothy:reads=['r0Asa0'] + eor r9, r14, r6, ror #32-3 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... + eor r7, r8, r1, ror #32-5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ + bic r1, r9, r3, ror #32+20-28 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... + eor r6, r10, r12, ror #32-21 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... + eor r10, r1, r5, ror #32+20-31 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... + bic r1, r7, r9, ror #21-20 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... + ldr r4, [r13, #8] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... // @slothy:reads=['spmDo0'] + ror r10, r10, #32-20 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. + eor r1, r1, r3, ror #32+21-28 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. + str r10, [r0, #160] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ // @slothy:writes=['r0Asa0'] + ror r12, r1, #32-21 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... + bic r3, r3, r5, ror #32+28-31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. + bic r1, r6, r7, ror #32+1-21 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. + str r12, [r0, #168] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................ // @slothy:writes=['r0Ase0'] + eor r1, r1, r9, ror #32+1-20 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... + bic r5, r5, r6, ror #31-1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... + ror r1, r1, #32-1 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... + eor r5, r5, r7, ror #31-21 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................ + str r1, [r0, #176] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... // @slothy:writes=['r0Asi0'] + ror r1, r5, #32-31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... + eor r5, r3, r6, ror #28-1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... + str r1, [r0, #184] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... // @slothy:writes=['r0Aso0'] + ror r6, r5, #32-28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... + ldr r12, [r0, #4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. // @slothy:reads=['r0Aba1'] + ldr r3, [r0, #12] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. // @slothy:reads=['r0Abe1'] + ldr r10, [r0, #20] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ // @slothy:reads=['r0Abi1'] + ldr r1, [r0, #28] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... // @slothy:reads=['r0Abo1'] + ldr r5, [r0, #36] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. // @slothy:reads=['r0Abu1'] + str r6, [r0, #192] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. // @slothy:writes=['r0Asu0'] + ldr r6, [r13, #20] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ // @slothy:reads=['spmRC'] + ldr r7, [r6, #28] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... // @slothy:reads=['r128'] + eor r9, r8, r12 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... + eor r12, r2, r10, ror #32-9 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... + eor r10, r4, r1, ror #32-14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ + eor r11, r11, r3, ror #32-22 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... + bic r8, r10, r12, ror #32+10-21 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... + eor r14, r14, r5, ror #32-27 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... + eor r8, r8, r11, ror #32+10-22 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... + bic r5, r14, r10, ror #32+7-10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... + ror r8, r8, #32-10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. + eor r4, r5, r12, ror #32+7-21 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. + str r8, [r0, #12] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ // @slothy:writes=['r0Abe1'] + ror r8, r4, #32-7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... + str r8, [r0, #20] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. // @slothy:writes=['r0Abi1'] + bic r3, r9, r14, ror #32+0-7 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. + bic r8, r11, r9, ror #22-0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ + eor r5, r3, r10, ror #32+0-10 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... + eor r1, r8, r14, ror #22-7 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... + str r5, [r0, #28] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... // @slothy:writes=['r0Abo1'] + ror r1, r1, #32-22 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ + bic r14, r12, r11, ror #32+21-22 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... + ldr r8, [r6, #32]! // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... // @slothy:reads=['r132'] + str r6, [r13, #20] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... // @slothy:writes=['spmRC'] + cmp r8, #0xFF // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... + eor r3, r9, r14, ror #32-21 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... + str r1, [r0, #36] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. // @slothy:writes=['r0Abu1'] + eor r1, r7, r3 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. + str r1, [r0, #4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................* // @slothy:writes=['r0Aba1'] + + // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- cycle (expected) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + // 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 375 400 425 450 475 500 525 550 575 600 625 650 675 700 725 750 775 800 825 850 875 900 925 950 975 1000 1025 1050 1075 1100 1125 1150 1175 1200 1225 1250 1275 1300 1325 1350 1375 1400 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------ + // ldrd r3, r4, [r0, #32] // .*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r1, r5, [r0, #72] // *................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r3, r1, ror #0-0 // ........*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r5, ror #0-0 // ...*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r1, r5, [r0, #112] // ..*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r1, ror #0-0 // ..........*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #0-0 // .....*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r1, r5, [r0, #152] // ....*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r3, r1, ror #0-0 // .............*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #0-0 // .......*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r1, r5, [r0, #192] // ......*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r1, ror #0-0 // .......................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #0-0 // .........*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r7, r8, [r0, #8] // ............*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r1, r5, [r0, #48] // ...........*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #0-0 // ..............*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r8, r8, r5, ror #0-0 // ................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldrd r1, r5, [r0, #88] // ...............*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r1, ror #0-0 // .....................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r8, r8, r5, ror #0-0 // ..................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r1, r5, [r0, #128] // .................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #0-0 // ........................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r8, r8, r5, ror #0-0 // ....................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldrd r1, r5, [r0, #168] // ...................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r1, ror #0-0 // ..........................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r8, r8, r5, ror #0-0 // ......................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r3, r8, ror #32-1 // .........................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r6, [r13, #0] // ...........................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r4, r7 // ............................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r6, [r13, #4] // ...............................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r1, r5, [r0, #16] // ..............................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r6, r10, [r0, #56] // .............................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #0-0 // ................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r5, r5, r10, ror #0-0 // ..................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r6, r10, [r0, #96] // .................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #0-0 // ....................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r5, r5, r10, ror #0-0 // .......................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r6, r10, [r0, #136] // ...................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #0-0 // ......................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r5, r10, ror #0-0 // .........................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r6, r10, [r0, #176] // .....................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #0-0 // ........................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r5, r5, r10, ror #0-0 // ...........................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r9, r1, r4, ror #32-1 // ..........................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r9, [r13, #8] // ............................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r3, r5 // .............................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r6, [r13, #12] // ..............................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r3, r4, [r0, #24] // ................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldrd r6, r10, [r0, #64] // ...............................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r6, ror #0-0 // ..................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r10, ror #0-0 // ...................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r6, r10, [r0, #104] // .................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r6, ror #0-0 // ....................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r10, ror #0-0 // ......................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r6, r10, [r0, #144] // .....................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r6, ror #0-0 // ........................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r10, ror #0-0 // .........................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r6, r10, [r0, #184] // .......................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r6, ror #0-0 // ..........................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r10, ror #0-0 // ...........................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r2, r8, r3 // ..................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r6, r7, r4, ror #32-1 // ..............................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r6, [r13, #16] // ...................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r7, r6, [r0, #0] // .............................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r11, [r0, #40] // ............................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r10, ror #0-0 // ...............................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r6, r6, r11, ror #0-0 // ................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldrd r10, r11, [r0, #80] // .................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r10, ror #0-0 // ....................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r6, r6, r11, ror #0-0 // .....................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r11, [r0, #120] // ......................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r10, ror #0-0 // .........................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r6, r11, ror #0-0 // ..........................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r11, [r0, #160] // .......................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r10, ror #0-0 // ...........................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r6, r11, ror #0-0 // ............................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r10, r7, r5, ror #32-1 // .................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r11, r6, r1 // ...............................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r12, r3, r6, ror #32-1 // ................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r14, r4, r7 // .............................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r8, [r13, #4] // ....................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r3, [r0, #24] // ..............................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r4, [r0, #72] // .................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #84] // ........................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r6, [r0, #132] // ......................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #180] // ...................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r9, r3 // ...........................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r12, r4 // ..................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r5, r8, r5 // .....................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r11, r6 // .......................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r2, r7 // .........................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+2-10 // ....................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r3, ror #32+2-14 // ............................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #84] // ..............................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #23-2 // ................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r4, ror #23-10 // .....................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #132] // .......................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #31-23 // ..........................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #31-2 // .............................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #180] // ...............................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #32+14-31 // ............................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+14-23 // ..............................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #24] // ...................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #32+10-14 // ........................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r7, ror #32+10-31 // ..........................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r3, [r0, #8] // ..................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r4, [r0, #60] // ......................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #104] // ................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r6, [r0, #156] // .........................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #164] // ..................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #72] // ...............................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r10, r3 // ....................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r2, r4 // .............................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r9, r5 // .................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r14, r6 // ...........................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r8, r7 // ........................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r5, r4, ror #12-3 // ..............................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r3, ror #12-0 // ................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #164] // ......................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #32+4-12 // ...................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r4, ror #4-3 // .....................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #8] // .......................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #9-4 // .............................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+9-12 // .................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #60] // ...........................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+0-9 // ......................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+0-4 // ........................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #104] // ..........................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #3-0 // .........................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+3-9 // ...........................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r8, [r13, #0] // ..................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r3, [r0, #36] // ....................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r4, [r0, #40] // .....................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #88] // .......................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #140] // ............................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #184] // ...................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #156] // ...............................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r14, r3 // ..........................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r8, r4 // ........................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r5, r10, r5 // .........................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r2, r6 // ............................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r9, r7 // .............................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+5-18 // ...................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r3, ror #32+5-14 // .....................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #40] // .......................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #8-5 // .................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+8-18 // ..................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #88] // ....................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r7, r6, ror #28-8 // ..........................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #28-5 // ............................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #140] // ...............................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #32+14-28 // ........................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r6, ror #14-8 // ................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #184] // .........................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #18-14 // ..............................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #32+18-28 // ...............................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r3, [r0, #20] // .....................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #64] // ...........................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #112] // ......................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #120] // .............................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #172] // ...................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #36] // ................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r2, r3 // ......................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r9, r4 // ..............................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r5, r12, r5 // .........................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r8, r6 // .................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r11, r7 // ...........................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+19-27 // ........................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r3, ror #32+19-31 // ..........................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #120] // ............................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #20-19 // ..................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r4, ror #32+20-27 // ....................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #172] // .......................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #32+1-20 // ..............................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r5, ror #32+1-19 // ...................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #20] // .....................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #31-1 // .............................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #31-20 // ...............................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #64] // ............................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #32+27-31 // ................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r7, ror #27-1 // ..................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r9, [r13, #12] // ..........................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r3, [r0, #0] // ...........................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #48] // ......................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #100] // ........................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r6, [r0, #148] // .............................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #192] // ....................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #112] // ......................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r8, r3 // ...............................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r10, r4 // .......................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r2, r5 // .........................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r9, r6 // ..............................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r12, r7 // .......................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #32+11-22 // .....................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+11-22 // .........................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #48] // ...........................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #32+7-11 // ................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r5, ror #32+7-22 // ..................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #100] // ....................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r3, r7, ror #32+0-7 // .................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+0-11 // ...................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #148] // ........................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r4, r3, ror #22-0 // ..........................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #22-7 // ..............................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #192] // ................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r5, r5, r4, ror #22-22 // ............................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r1, [r13, #20] // .................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r1, #0] // .............................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r5, ror #32-22 // ...............................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r4, r3 // .................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r2, [r13, #16] // ...................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r3, [r0, #28] // .............................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #76] // ....................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r5, [r0, #80] // .........................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #128] // ..................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r7, [r0, #176] // ................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #0] // .........................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r9, r3 // ........................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r14, r4 // ......................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r8, r5 // ..........................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r10, r6 // ...................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r2, r7 // .................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+1-10 // ..........................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+1-14 // ............................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #80] // ..............................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #22-1 // .........................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #22-10 // ...........................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #128] // .............................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #30-22 // .....................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #30-1 // .......................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #176] // ................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r3, r7, ror #32+14-30 // ...............................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #32+14-22 // ...................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #28] // ..............................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #32+10-14 // .....................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+10-30 // .......................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r3, [r0, #12] // ..................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r4, [r0, #56] // ....................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r5, [r0, #108] // .....................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #152] // .......................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #160] // ............................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #76] // ..........................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r11, r3 // ......................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r2, r4 // ........................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r5, r9, r5 // ..........................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r12, r6 // ................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r8, r7 // ..............................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r5, r4, ror #13-3 // ...........................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #13-1 // .............................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #160] // ...............................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #32+4-13 // ........................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r4, ror #4-3 // ............................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #12] // ...............................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r7, r6, ror #9-4 // .....................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+9-13 // ...........................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #56] // ..............................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #32+1-9 // .................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+1-4 // ...................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #108] // ......................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #3-1 // ..................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #32+3-9 // ....................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r8, [r13, #4] // ....................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r3, [r0, #32] // .................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #44] // ..................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r5, [r0, #92] // ....................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r6, [r0, #136] // .........................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #188] // ........................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #152] // .......................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r12, r3 // ..................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r8, r4 // ......................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r11, r5 // ......................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r2, r6 // ............................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r9, r7 // ...........................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+5-18 // ..........................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+5-13 // ............................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #44] // ...............................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #7-5 // .................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+7-18 // ...........................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #92] // .............................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #28-7 // ................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r5, ror #28-5 // ...................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #136] // .....................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+13-28 // .............................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #13-7 // ...............................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #188] // .........................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #18-13 // ..............................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #32+18-28 // ................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r3, [r0, #16] // .................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #68] // ..................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r5, [r0, #116] // .......................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #124] // ...................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r7, [r0, #168] // ....................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #32] // .....................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r2, r3 // ......................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r9, r4 // .......................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r14, r5 // ........................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r6, r8, r6 // ........................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r10, r7 // ..........................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+20-28 // .........................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+20-31 // ...........................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #124] // .............................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #21-20 // ............................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+21-28 // ..............................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #168] // ................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r7, r6, ror #32+1-21 // ...............................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r5, ror #32+1-20 // .................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #16] // ...................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #31-1 // ..................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #31-21 // ....................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #68] // ......................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #32+28-31 // .....................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #28-1 // .......................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r9, [r13, #8] // ........................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r3, [r0, #4] // .........................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #52] // ..........................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #96] // ...........................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #144] // ............................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #196] // .............................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #116] // ..............................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r8, r3 // ...............................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r11, r4 // ................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r5, r2, r5 // .................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r9, r6 // ..................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r14, r7 // ...................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #32+10-21 // ....................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r4, ror #32+10-22 // ......................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #52] // ........................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r7, r6, ror #32+7-10 // .....................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+7-21 // .......................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #96] // .........................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+0-7 // ..........................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+0-10 // ............................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #144] // ..............................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #22-0 // ...........................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #22-7 // .............................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #196] // ...............................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r5, r5, r4, ror #32+21-22 // ................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r1, [r13, #20] // .................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r1, #4] // ..................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r5, ror #32-21 // ...................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r14, r4, r3 // ...............................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r14, [r0, #4] // ................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldrd r3, r4, [r0, #192] // .....................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r1, r5, [r0, #72] // ....................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r3, r1, ror #22-10 // .......................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #22-10 // ........................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldrd r1, r5, [r0, #152] // ......................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r1, ror #22-3 // ..........................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #22-3 // ...........................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r5, r1, [r0, #32] // .........................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r1, ror #22-18 // ............................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #22-18 // .............................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r5, r1, [r0, #112] // ..............................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r1, ror #32+22-28 // .................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #32+22-27 // ..................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r7, r8, [r0, #48] // ....................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldrd r5, r1, [r0, #128] // ...................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r1, ror #32+11-23 // ......................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r8, r8, r5, ror #32+10-22 // .......................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r5, r1, [r0, #8] // .....................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #11-4 // ........................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r8, r8, r5, ror #10-4 // ..........................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r1, r5, [r0, #88] // .........................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #11-8 // .............................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r8, r8, r5, ror #10-7 // ............................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r1, r5, [r0, #168] // ...........................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #32+11-21 // ...............................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r8, r8, r5, ror #32+10-20 // ..............................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ror r3, r3, #10 // ................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ror r7, r7, #21 // ..................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r6, r3, r8, ror #22-1 // .................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r6, [r13, #0] // ...................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r10, r7, r4, ror #10 // ....................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r10, [r13, #4] // .................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r5, r1, [r0, #96] // ......................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r6, [r0, #176] // .....................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+7-31 // ........................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r5, r5, r10, ror #32+7-30 // .........................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r6, r10, [r0, #56] // .......................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+7-9 // ..........................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r5, r10, ror #32+7-9 // ............................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r6, [r0, #136] // ...........................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+7-28 // ...............................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r5, r5, r10, ror #32+7-28 // ..............................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r6, r10, [r0, #16] // .............................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #7-1 // ..................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r5, r5, r10, ror #7-1 // ................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ror r1, r1, #25 // ....................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r6, r3, r5, ror #25 // ...................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r6, [r13, #12] // .....................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r9, r1, r4, ror #10-1 // ......................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r9, [r13, #8] // ...................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r4, r3, [r0, #144] // ........................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldrd r6, r10, [r0, #24] // .......................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r6, ror #32+0-14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r10, ror #32+0-14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r6, [r0, #104] // .........................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r6, ror #32+0-1 // ............................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r10, ror #0-0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r6, r10, [r0, #184] // .............................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r6, ror #32+0-14 // .................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r10, ror #32+0-13 // ................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldrd r10, r6, [r0, #64] // ...............................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r6, ror #32+0-31 // ....................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r10, ror #32+0-31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r2, r3, r8, ror #22 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r7, r4, ror #32-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r6, [r13, #16] // .......................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r7, r6, [r0, #0] // .........................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r11, r10, [r0, #80] // ........................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r10, ror #32+0-2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r6, r11, ror #32+0-1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r11, [r0, #160] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r10, ror #32+0-13 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r6, r11, ror #32+0-12 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r10, r11, [r0, #40] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r10, ror #32+0-5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r6, r11, ror #32+0-5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r11, r10, [r0, #120] // ................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r10, ror #32+0-20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r6, r6, r11, ror #32+0-19 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r10, r7, r5, ror #25-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r11, r6, r1 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r12, r3, r6, ror #32-1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r14, r4, r7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r8, [r13, #4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r3, [r0, #148] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #72] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r5, [r0, #164] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #92] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #20] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r9, r3 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r12, r4, ror #32-10 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r5, r8, r5, ror #32-12 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r11, r6, ror #32-7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r2, r7, ror #32-1 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+2-10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+2-14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #164] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r6, r5, ror #23-2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r4, ror #23-10 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #92] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r7, r6, ror #31-23 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #31-2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #20] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+14-31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+14-23 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #148] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #32+10-14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+10-31 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r3, [r0, #48] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #176] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #108] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #32] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #120] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #72] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r10, r3, ror #32-11 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r2, r4, ror #32-30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r5, r9, r5, ror #32-1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r6, r14, r6, ror #32-18 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r8, r7, ror #32-19 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r5, r4, ror #12-3 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r3, ror #12-0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #120] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #32+4-12 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r4, ror #4-3 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #48] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #9-4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r5, ror #32+9-12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #176] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r3, r7, ror #32+0-9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+0-4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #108] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #3-0 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+3-9 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r8, [r13, #0] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r3, [r0, #196] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #84] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r5, [r0, #12] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r6, [r0, #136] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #68] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #32] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r14, r3, ror #32-22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r8, r4, ror #32-2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r5, r10, r5, ror #32-4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r2, r6, ror #32-28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r9, r7, ror #32-31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+5-18 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+5-14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #84] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #8-5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r4, ror #32+8-18 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #12] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r7, r6, ror #28-8 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #28-5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #136] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #32+14-28 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #14-8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #68] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #18-14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+18-28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r3, [r0, #96] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #24] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r5, [r0, #152] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #40] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #172] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #196] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r2, r3, ror #32-7 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r9, r4, ror #32-14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r5, r12, r5, ror #32-3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r8, r6, ror #32-5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r11, r7, ror #32-20 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+19-27 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r3, ror #32+19-31 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #40] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #20-19 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+20-27 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #172] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #32+1-20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r5, ror #32+1-19 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #96] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #31-1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r6, ror #31-20 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #24] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #32+27-31 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r7, ror #27-1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r9, [r13, #12] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r3, [r0, #0] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r4, [r0, #132] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r5, [r0, #60] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r6, [r0, #188] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r7, [r0, #116] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #152] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r8, r3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r10, r4, ror #32-23 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r2, r5, ror #32-9 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r9, r6, ror #32-13 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r12, r7, ror #32-28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #32+11-22 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r4, ror #32+11-22 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #132] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #32+7-11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r5, ror #32+7-22 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #60] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #32+0-7 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r6, ror #32+0-11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #188] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #22-0 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #22-7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #116] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r5, r5, r4, ror #22-22 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r1, [r13, #20] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r1, #8] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r5, ror #32-22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r4, r3 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r2, [r13, #16] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r3, [r0, #144] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r4, [r0, #76] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #160] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r6, [r0, #88] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #16] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #0] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r9, r3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r14, r4, ror #32-10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r8, r5, ror #32-13 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r6, r10, r6, ror #32-8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r2, r7, ror #32-1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r5, r4, ror #32+1-10 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+1-14 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #160] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #22-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #22-10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #88] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #30-22 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #30-1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #16] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r3, r7, ror #32+14-30 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+14-22 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #144] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #32+10-14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+10-30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r3, [r0, #52] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #180] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r5, [r0, #104] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #36] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r7, [r0, #124] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #76] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r11, r3, ror #32-10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r2, r4, ror #32-31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r5, r9, r5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r12, r6, ror #32-18 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r8, r7, ror #32-20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r5, r4, ror #13-3 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #13-1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #124] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #32+4-13 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r4, ror #4-3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #52] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r7, r6, ror #9-4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+9-13 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #180] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #32+1-9 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #32+1-4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #104] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #3-1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r7, ror #32+3-9 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r8, [r13, #4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r3, [r0, #192] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r4, [r0, #80] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r5, [r0, #8] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r6, [r0, #140] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #64] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #36] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r12, r3, ror #32-22 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r8, r4, ror #32-1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r11, r5, ror #32-4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r2, r6, ror #32-28 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r9, r7, ror #32-31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+5-18 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+5-13 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #80] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #7-5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+7-18 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #8] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #28-7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #28-5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #140] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+13-28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r6, ror #13-7 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #64] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #18-13 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #32+18-28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r3, [r0, #100] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #28] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #156] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #44] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r7, [r0, #168] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #192] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r2, r3, ror #32-7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r9, r4, ror #32-14 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r5, r14, r5, ror #32-3 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r6, r8, r6, ror #32-5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r10, r7, ror #32-21 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+20-28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r3, ror #32+20-31 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #44] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #21-20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r4, ror #32+21-28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #168] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #32+1-21 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+1-20 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #100] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #31-1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #31-21 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #28] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #32+28-31 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #28-1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r9, [r13, #8] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r3, [r0, #4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r4, [r0, #128] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r5, [r0, #56] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r6, [r0, #184] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #112] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #156] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r8, r3 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r11, r4, ror #32-22 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r2, r5, ror #32-9 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r9, r6, ror #32-14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r14, r7, ror #32-27 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #32+10-21 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+10-22 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #128] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r7, r6, ror #32+7-10 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r5, ror #32+7-21 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #56] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #32+0-7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #32+0-10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #184] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #22-0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #22-7 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #112] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r5, r5, r4, ror #32+21-22 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r1, [r13, #20] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r1, #12] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r5, ror #32-21 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r14, r4, r3 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r14, [r0, #4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r4, r3, [r0, #112] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldrd r1, r5, [r0, #72] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r1, ror #22-10 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r5, ror #22-10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r5, r1, [r0, #32] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r1, ror #22-3 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #22-3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r5, r1, [r0, #192] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r3, r1, ror #22-18 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #22-18 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldrd r5, r1, [r0, #152] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r1, ror #32+22-28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #32+22-27 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r8, r7, [r0, #128] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r5, r1, [r0, #88] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #32+11-23 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r8, r8, r5, ror #32+10-22 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r5, r1, [r0, #48] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #11-4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r8, r8, r5, ror #10-4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r5, r1, [r0, #8] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r1, ror #11-8 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r8, r8, r5, ror #10-7 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r1, r5, [r0, #168] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r1, ror #32+11-21 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r8, r8, r5, ror #32+10-20 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ror r3, r3, #10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ror r7, r7, #21 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r3, r8, ror #22-1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r6, [r13, #0] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r10, r7, r4, ror #10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r10, [r13, #4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r5, r1, [r0, #56] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r10, r6, [r0, #16] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #32+7-31 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r5, r10, ror #32+7-30 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r10, r6, [r0, #176] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r6, ror #32+7-9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r5, r5, r10, ror #32+7-9 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r6, r10, [r0, #136] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r6, ror #32+7-28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r5, r5, r10, ror #32+7-28 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r6, [r0, #96] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #7-1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r5, r10, ror #7-1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ror r1, r1, #25 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r3, r5, ror #25 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r6, [r13, #12] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r9, r1, r4, ror #10-1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r9, [r13, #8] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r4, r3, [r0, #184] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r6, [r0, #144] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r3, r6, ror #32+0-14 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r10, ror #32+0-14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldrd r6, r10, [r0, #104] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r6, ror #32+0-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r10, ror #0-0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r6, [r0, #64] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r6, ror #32+0-14 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r10, ror #32+0-13 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r6, [r0, #24] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r3, r6, ror #32+0-31 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r10, ror #32+0-31 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r2, r3, r8, ror #22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r7, r4, ror #32-1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r6, [r13, #16] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r7, r6, [r0, #0] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r11, r10, [r0, #160] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r10, ror #32+0-2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r6, r6, r11, ror #32+0-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r11, r10, [r0, #120] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r10, ror #32+0-13 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r6, r11, ror #32+0-12 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldrd r11, r10, [r0, #80] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r10, ror #32+0-5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r6, r11, ror #32+0-5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r11, r10, [r0, #40] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r10, ror #32+0-20 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r6, r11, ror #32+0-19 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r10, r7, r5, ror #25-1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r11, r6, r1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r12, r3, r6, ror #32-1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r14, r4, r7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r8, [r13, #4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r3, [r0, #188] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #72] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r5, [r0, #120] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #8] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r7, [r0, #96] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r9, r3 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r12, r4, ror #32-10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r5, r8, r5, ror #32-12 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r11, r6, ror #32-7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r2, r7, ror #32-1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+2-10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+2-14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #120] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #23-2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #23-10 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #8] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r7, r6, ror #31-23 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #31-2 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #96] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+14-31 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r6, ror #32+14-23 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #188] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r4, r3, ror #32+10-14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+10-31 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r3, [r0, #132] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r4, [r0, #16] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #104] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r6, [r0, #192] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #40] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #72] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r10, r3, ror #32-11 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r2, r4, ror #32-30 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r9, r5, ror #32-1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r6, r14, r6, ror #32-18 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r8, r7, ror #32-19 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r5, r4, ror #12-3 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #12-0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #40] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r6, r5, ror #32+4-12 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #4-3 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #132] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #9-4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+9-12 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #16] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #32+0-9 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #32+0-4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #104] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #3-0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r7, ror #32+3-9 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r8, [r13, #0] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r3, [r0, #112] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #164] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r5, [r0, #52] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r6, [r0, #140] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #28] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #192] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r14, r3, ror #32-22 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r8, r4, ror #32-2 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r10, r5, ror #32-4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r2, r6, ror #32-28 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r9, r7, ror #32-31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+5-18 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+5-14 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #164] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r6, r5, ror #8-5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+8-18 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #52] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #28-8 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r5, ror #28-5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #140] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r3, r7, ror #32+14-28 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #14-8 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #28] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #18-14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+18-28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r3, [r0, #56] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r4, [r0, #148] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #36] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r6, [r0, #84] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #172] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #112] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r2, r3, ror #32-7 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r9, r4, ror #32-14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r12, r5, ror #32-3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r8, r6, ror #32-5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r11, r7, ror #32-20 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+19-27 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r3, ror #32+19-31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #84] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #20-19 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r4, ror #32+20-27 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #172] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #32+1-20 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r5, ror #32+1-19 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #56] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #31-1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #31-20 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #148] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #32+27-31 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #27-1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r9, [r13, #12] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r3, [r0, #0] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r4, [r0, #92] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r5, [r0, #176] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #64] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #156] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #36] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r8, r3 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r10, r4, ror #32-23 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r5, r2, r5, ror #32-9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r9, r6, ror #32-13 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r12, r7, ror #32-28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #32+11-22 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+11-22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #92] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r7, r6, ror #32+7-11 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+7-22 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #176] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+0-7 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+0-11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #64] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #22-0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #22-7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #156] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r5, r5, r4, ror #22-22 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r1, [r13, #20] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r1, #16] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r5, ror #32-22 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r4, r3 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r2, [r13, #16] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r3, [r0, #184] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r4, [r0, #76] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r5, [r0, #124] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #12] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #100] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #0] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r9, r3 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r14, r4, ror #32-10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r5, r8, r5, ror #32-13 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r10, r6, ror #32-8 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r2, r7, ror #32-1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+1-10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+1-14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #124] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r6, r5, ror #22-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #22-10 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #12] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #30-22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #30-1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #100] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+14-30 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #32+14-22 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #184] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #32+10-14 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+10-30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r3, [r0, #128] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #20] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r5, [r0, #108] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #196] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #44] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #76] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r11, r3, ror #32-10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r2, r4, ror #32-31 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r9, r5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r12, r6, ror #32-18 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r8, r7, ror #32-20 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r5, r4, ror #13-3 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r3, ror #13-1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #44] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #32+4-13 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r4, ror #4-3 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #128] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r7, r6, ror #9-4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+9-13 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #20] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+1-9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+1-4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #108] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #3-1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #32+3-9 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r8, [r13, #4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r3, [r0, #116] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #160] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #48] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #136] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r7, [r0, #24] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #196] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r12, r3, ror #32-22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r8, r4, ror #32-1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r5, r11, r5, ror #32-4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r2, r6, ror #32-28 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r9, r7, ror #32-31 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r5, r4, ror #32+5-18 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r3, ror #32+5-13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #160] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #7-5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+7-18 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #48] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #28-7 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r5, ror #28-5 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #136] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+13-28 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #13-7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #24] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #18-13 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+18-28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r3, [r0, #60] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #144] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r5, [r0, #32] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #80] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #168] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #116] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r2, r3, ror #32-7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r9, r4, ror #32-14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r14, r5, ror #32-3 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r6, r8, r6, ror #32-5 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r10, r7, ror #32-21 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r5, r4, ror #32+20-28 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+20-31 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #80] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #21-20 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+21-28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #168] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r7, r6, ror #32+1-21 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r5, ror #32+1-20 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #60] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r3, r7, ror #31-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #31-21 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #144] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #32+28-31 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #28-1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r9, [r13, #8] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r3, [r0, #4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #88] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #180] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #68] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r7, [r0, #152] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str r1, [r0, #32] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r8, r3 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r11, r4, ror #32-22 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r5, r2, r5, ror #32-9 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r6, r9, r6, ror #32-14 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r14, r7, ror #32-27 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #32+10-21 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+10-22 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #88] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #32+7-10 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r5, ror #32+7-21 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #180] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+0-7 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+0-10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #68] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #22-0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #22-7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ + // str r1, [r0, #152] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r5, r5, r4, ror #32+21-22 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r1, [r13, #20] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r4, [r1, #20] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r5, ror #32-21 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r14, r4, r3 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... + // str r14, [r0, #4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r4, r3, [r0, #152] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r1, r5, [r0, #72] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r3, r1, ror #22-10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #22-10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r5, r1, [r0, #192] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r1, ror #22-3 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #22-3 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r1, r5, [r0, #112] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r1, ror #22-18 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #22-18 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r1, r5, [r0, #32] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r3, r1, ror #32+22-28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r5, ror #32+22-27 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ + // ldrd r8, r7, [r0, #88] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r1, r5, [r0, #8] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #32+11-23 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ + // eor r8, r8, r5, ror #32+10-22 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r1, r5, [r0, #128] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #11-4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... + // eor r8, r8, r5, ror #10-4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r5, r1, [r0, #48] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #11-8 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. + // eor r8, r8, r5, ror #10-7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. + // ldrd r1, r5, [r0, #168] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #32+11-21 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ + // eor r8, r8, r5, ror #32+10-20 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... + // ror r3, r3, #10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... + // ror r7, r7, #21 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. + // eor r6, r3, r8, ror #22-1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ + // str r6, [r13, #0] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ + // eor r10, r7, r4, ror #10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. + // str r10, [r13, #4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r1, r5, [r0, #176] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r6, r10, [r0, #96] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+7-31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r5, r10, ror #32+7-30 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r6, [r0, #16] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+7-9 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ + // eor r5, r5, r10, ror #32+7-9 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r6, [r0, #136] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+7-28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r5, r10, ror #32+7-28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r6, [r0, #56] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #7-1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... + // eor r5, r5, r10, ror #7-1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. + // ror r1, r1, #25 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................. + // eor r6, r3, r5, ror #25 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................. + // str r6, [r13, #12] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... + // eor r9, r1, r4, ror #10-1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ + // str r9, [r13, #8] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... + // ldrd r3, r4, [r0, #64] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r6, [r0, #184] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r6, ror #32+0-14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r10, ror #32+0-14 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ + // ldrd r10, r6, [r0, #104] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r6, ror #32+0-1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r10, ror #0-0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. + // ldrd r10, r6, [r0, #24] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r6, ror #32+0-14 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r10, ror #32+0-13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ + // ldrd r6, r10, [r0, #144] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r6, ror #32+0-31 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r10, ror #32+0-31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... + // eor r2, r3, r8, ror #22 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... + // eor r6, r7, r4, ror #32-1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... + // str r6, [r13, #16] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. + // ldrd r7, r6, [r0, #0] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................ + // ldrd r10, r11, [r0, #120] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r10, ror #32+0-2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... + // eor r6, r6, r11, ror #32+0-1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... + // ldrd r11, r10, [r0, #40] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r10, ror #32+0-13 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... + // eor r6, r6, r11, ror #32+0-12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................... + // ldrd r11, r10, [r0, #160] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r10, ror #32+0-5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................. + // eor r6, r6, r11, ror #32+0-5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... + // ldrd r10, r11, [r0, #80] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r10, ror #32+0-20 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... + // eor r6, r6, r11, ror #32+0-19 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + // eor r10, r7, r5, ror #25-1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... + // eor r11, r6, r1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... + // eor r12, r3, r6, ror #32-1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. + // eor r14, r4, r7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... + // ldr r8, [r13, #4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... + // ldr r3, [r0, #64] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ + // ldr r4, [r0, #72] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. + // ldr r5, [r0, #40] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. + // ldr r6, [r0, #48] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #56] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ + // eor r3, r9, r3 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ + // eor r4, r12, r4, ror #32-10 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................... + // eor r5, r8, r5, ror #32-12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... + // eor r6, r11, r6, ror #32-7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... + // eor r7, r2, r7, ror #32-1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ + // bic r1, r5, r4, ror #32+2-10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+2-14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... + // ror r1, r1, #32-2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #40] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #23-2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #23-10 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ + // ror r1, r1, #32-23 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................. + // str r1, [r0, #48] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ + // bic r1, r7, r6, ror #31-23 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r5, ror #31-2 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ + // ror r1, r1, #32-31 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... + // str r1, [r0, #56] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+14-31 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #32+14-23 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... + // ror r1, r1, #32-14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... + // str r1, [r0, #64] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #32+10-14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+10-31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... + // ror r1, r1, #32-10 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................ + // ldr r3, [r0, #92] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #100] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #108] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #116] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ + // ldr r7, [r0, #84] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. + // str r1, [r0, #72] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... + // eor r3, r10, r3, ror #32-11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... + // eor r4, r2, r4, ror #32-30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. + // eor r5, r9, r5, ror #32-1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ + // eor r6, r14, r6, ror #32-18 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... + // eor r7, r8, r7, ror #32-19 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #12-3 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................. + // eor r1, r1, r3, ror #12-0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ + // ror r1, r1, #32-12 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... + // str r1, [r0, #84] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #32+4-12 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. + // eor r1, r1, r4, ror #4-3 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... + // ror r1, r1, #32-4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. + // str r1, [r0, #92] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #9-4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+9-12 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................. + // ror r1, r1, #32-9 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... + // str r1, [r0, #100] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #32+0-9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #32+0-4 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. + // str r1, [r0, #108] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #3-0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+3-9 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... + // ror r1, r1, #32-3 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... + // ldr r8, [r13, #0] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................... + // ldr r3, [r0, #152] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... + // ldr r4, [r0, #120] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... + // ldr r5, [r0, #128] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ + // ldr r6, [r0, #136] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... + // ldr r7, [r0, #144] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. + // str r1, [r0, #116] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... + // eor r3, r14, r3, ror #32-22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................... + // eor r4, r8, r4, ror #32-2 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... + // eor r5, r10, r5, ror #32-4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ + // eor r6, r2, r6, ror #32-28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ + // eor r7, r9, r7, ror #32-31 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+5-18 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+5-14 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... + // ror r1, r1, #32-5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... + // str r1, [r0, #120] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #8-5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. + // eor r1, r1, r4, ror #32+8-18 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ + // ror r1, r1, #32-8 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. + // str r1, [r0, #128] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ + // bic r1, r7, r6, ror #28-8 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #28-5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ + // ror r1, r1, #32-28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. + // str r1, [r0, #136] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+14-28 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #14-8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... + // ror r1, r1, #32-14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. + // str r1, [r0, #144] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #18-14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ + // eor r1, r1, r7, ror #32+18-28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. + // ror r1, r1, #32-18 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... + // ldr r3, [r0, #180] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ + // ldr r4, [r0, #188] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... + // ldr r5, [r0, #196] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... + // ldr r6, [r0, #164] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ + // ldr r7, [r0, #172] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... + // str r1, [r0, #152] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... + // eor r3, r2, r3, ror #32-7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. + // eor r4, r9, r4, ror #32-14 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... + // eor r5, r12, r5, ror #32-3 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... + // eor r6, r8, r6, ror #32-5 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... + // eor r7, r11, r7, ror #32-20 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ + // bic r1, r5, r4, ror #32+19-27 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+19-31 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ + // ror r1, r1, #32-19 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... + // str r1, [r0, #164] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. + // bic r1, r6, r5, ror #20-19 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. + // eor r1, r1, r4, ror #32+20-27 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... + // ror r1, r1, #32-20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. + // str r1, [r0, #172] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ + // bic r1, r7, r6, ror #32+1-20 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+1-19 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... + // ror r1, r1, #32-1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... + // str r1, [r0, #180] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... + // bic r1, r3, r7, ror #31-1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... + // eor r1, r1, r6, ror #31-20 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... + // ror r1, r1, #32-31 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. + // str r1, [r0, #188] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... + // bic r1, r4, r3, ror #32+27-31 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. + // eor r1, r1, r7, ror #27-1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ + // ror r1, r1, #32-27 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... + // ldr r9, [r13, #12] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ + // ldr r3, [r0, #0] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. + // ldr r4, [r0, #8] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ + // ldr r5, [r0, #16] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. + // ldr r6, [r0, #24] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... + // ldr r7, [r0, #32] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... + // str r1, [r0, #196] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ + // eor r3, r8, r3 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... + // eor r4, r10, r4, ror #32-23 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. + // eor r5, r2, r5, ror #32-9 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... + // eor r6, r9, r6, ror #32-13 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... + // eor r7, r12, r7, ror #32-28 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... + // bic r1, r6, r5, ror #32+11-22 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. + // eor r1, r1, r4, ror #32+11-22 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ + // ror r1, r1, #32-11 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... + // str r1, [r0, #8] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... + // bic r1, r7, r6, ror #32+7-11 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+7-22 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. + // ror r1, r1, #32-7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... + // str r1, [r0, #16] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. + // bic r1, r3, r7, ror #32+0-7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... + // eor r1, r1, r6, ror #32+0-11 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ + // str r1, [r0, #24] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... + // bic r1, r4, r3, ror #22-0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... + // eor r1, r1, r7, ror #22-7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. + // ror r1, r1, #32-22 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ + // str r1, [r0, #32] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... + // bic r5, r5, r4, ror #22-22 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... + // ldr r1, [r13, #20] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................. + // ldr r4, [r1, #24] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................. + // eor r3, r3, r5, ror #32-22 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. + // eor r1, r4, r3 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... + // ldr r2, [r13, #16] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... + // ldr r3, [r0, #68] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ + // ldr r4, [r0, #76] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... + // ldr r5, [r0, #44] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... + // ldr r6, [r0, #52] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ + // ldr r7, [r0, #60] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... + // str r1, [r0, #0] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... + // eor r3, r9, r3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... + // eor r4, r14, r4, ror #32-10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ + // eor r5, r8, r5, ror #32-13 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... + // eor r6, r10, r6, ror #32-8 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... + // eor r7, r2, r7, ror #32-1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... + // bic r1, r5, r4, ror #32+1-10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... + // eor r1, r1, r3, ror #32+1-14 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... + // ror r1, r1, #32-1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. + // str r1, [r0, #44] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ + // bic r1, r6, r5, ror #22-1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... + // eor r1, r1, r4, ror #22-10 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. + // ror r1, r1, #32-22 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... + // str r1, [r0, #52] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... + // bic r1, r7, r6, ror #30-22 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. + // eor r1, r1, r5, ror #30-1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ + // ror r1, r1, #32-30 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. + // str r1, [r0, #60] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................. + // bic r1, r3, r7, ror #32+14-30 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... + // eor r1, r1, r6, ror #32+14-22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... + // ror r1, r1, #32-14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. + // str r1, [r0, #68] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... + // bic r1, r4, r3, ror #32+10-14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ + // eor r1, r1, r7, ror #32+10-30 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... + // ror r1, r1, #32-10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... + // ldr r3, [r0, #88] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. + // ldr r4, [r0, #96] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... + // ldr r5, [r0, #104] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ + // ldr r6, [r0, #112] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... + // ldr r7, [r0, #80] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ + // str r1, [r0, #76] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................. + // eor r3, r11, r3, ror #32-10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... + // eor r4, r2, r4, ror #32-31 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... + // eor r5, r9, r5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................... + // eor r6, r12, r6, ror #32-18 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... + // eor r7, r8, r7, ror #32-20 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................... + // bic r1, r5, r4, ror #13-3 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ + // eor r1, r1, r3, ror #13-1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. + // ror r1, r1, #32-13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................ + // str r1, [r0, #80] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... + // bic r1, r6, r5, ror #32+4-13 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... + // eor r1, r1, r4, ror #4-3 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. + // ror r1, r1, #32-4 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. + // str r1, [r0, #88] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... + // bic r1, r7, r6, ror #9-4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... + // eor r1, r1, r5, ror #32+9-13 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. + // ror r1, r1, #32-9 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... + // str r1, [r0, #96] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. + // bic r1, r3, r7, ror #32+1-9 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... + // eor r1, r1, r6, ror #32+1-4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ + // ror r1, r1, #32-1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ + // str r1, [r0, #104] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... + // bic r1, r4, r3, ror #3-1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. + // eor r1, r1, r7, ror #32+3-9 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... + // ror r1, r1, #32-3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... + // ldr r8, [r13, #4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... + // ldr r3, [r0, #156] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... + // ldr r4, [r0, #124] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. + // ldr r5, [r0, #132] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... + // ldr r6, [r0, #140] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... + // ldr r7, [r0, #148] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... + // str r1, [r0, #112] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ + // eor r3, r12, r3, ror #32-22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... + // eor r4, r8, r4, ror #32-1 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... + // eor r5, r11, r5, ror #32-4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. + // eor r6, r2, r6, ror #32-28 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ + // eor r7, r9, r7, ror #32-31 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... + // bic r1, r5, r4, ror #32+5-18 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................ + // eor r1, r1, r3, ror #32+5-13 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. + // ror r1, r1, #32-5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... + // str r1, [r0, #124] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................ + // bic r1, r6, r5, ror #7-5 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... + // eor r1, r1, r4, ror #32+7-18 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... + // ror r1, r1, #32-7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. + // str r1, [r0, #132] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. + // bic r1, r7, r6, ror #28-7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... + // eor r1, r1, r5, ror #28-5 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. + // ror r1, r1, #32-28 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... + // str r1, [r0, #140] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... + // bic r1, r3, r7, ror #32+13-28 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... + // eor r1, r1, r6, ror #13-7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. + // ror r1, r1, #32-13 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ + // str r1, [r0, #148] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... + // bic r1, r4, r3, ror #18-13 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... + // eor r1, r1, r7, ror #32+18-28 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... + // ror r1, r1, #32-18 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... + // ldr r3, [r0, #176] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................ + // ldr r4, [r0, #184] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. + // ldr r5, [r0, #192] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................... + // ldr r6, [r0, #160] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... + // ldr r7, [r0, #168] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. + // str r1, [r0, #156] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. + // eor r3, r2, r3, ror #32-7 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... + // eor r4, r9, r4, ror #32-14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ + // eor r5, r14, r5, ror #32-3 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... + // eor r6, r8, r6, ror #32-5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ + // eor r7, r10, r7, ror #32-21 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... + // bic r1, r5, r4, ror #32+20-28 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... + // eor r1, r1, r3, ror #32+20-31 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... + // ror r1, r1, #32-20 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. + // str r1, [r0, #160] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ + // bic r1, r6, r5, ror #21-20 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... + // eor r1, r1, r4, ror #32+21-28 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. + // ror r1, r1, #32-21 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... + // str r1, [r0, #168] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................ + // bic r1, r7, r6, ror #32+1-21 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. + // eor r1, r1, r5, ror #32+1-20 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... + // ror r1, r1, #32-1 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... + // str r1, [r0, #176] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... + // bic r1, r3, r7, ror #31-1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... + // eor r1, r1, r6, ror #31-21 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................ + // ror r1, r1, #32-31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... + // str r1, [r0, #184] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... + // bic r1, r4, r3, ror #32+28-31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. + // eor r1, r1, r7, ror #28-1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... + // ror r1, r1, #32-28 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... + // ldr r9, [r13, #8] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... + // ldr r3, [r0, #4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. + // ldr r4, [r0, #12] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. + // ldr r5, [r0, #20] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ + // ldr r6, [r0, #28] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... + // ldr r7, [r0, #36] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. + // str r1, [r0, #192] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. + // eor r3, r8, r3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... + // eor r4, r11, r4, ror #32-22 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... + // eor r5, r2, r5, ror #32-9 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... + // eor r6, r9, r6, ror #32-14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ + // eor r7, r14, r7, ror #32-27 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... + // bic r1, r6, r5, ror #32+10-21 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... + // eor r1, r1, r4, ror #32+10-22 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... + // ror r1, r1, #32-10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. + // str r1, [r0, #12] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ + // bic r1, r7, r6, ror #32+7-10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... + // eor r1, r1, r5, ror #32+7-21 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. + // ror r1, r1, #32-7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... + // str r1, [r0, #20] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. + // bic r1, r3, r7, ror #32+0-7 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. + // eor r1, r1, r6, ror #32+0-10 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... + // str r1, [r0, #28] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... + // bic r1, r4, r3, ror #22-0 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ + // eor r1, r1, r7, ror #22-7 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... + // ror r1, r1, #32-22 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ + // str r1, [r0, #36] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. + // bic r5, r5, r4, ror #32+21-22 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... + // ldr r1, [r13, #20] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ + // ldr r4, [r1, #28] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... + // ldr r7, [r1, #32]! // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... + // str r1, [r13, #20] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... + // cmp r7, #0xFF // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... + // eor r3, r3, r5, ror #32-21 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... + // eor r1, r4, r3 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. + // str r1, [r0, #4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................* + + mld_keccak_f1600_x1_armv7m_asm_slothy_end: + + bne mld_keccak_f1600_x1_armv7m_asm_StatePermute_RoundLoop + add sp, #mSize + pop { r4 - r12, pc } + +MLD_ASM_FN_SIZE(keccak_f1600_x1_armv7m_asm) + +/* simpasm: footer-start */ +#endif /* MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_extract_bytes_armv7m.S b/dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_extract_bytes_armv7m.S new file mode 100644 index 0000000000..122df3b34f --- /dev/null +++ b/dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_extract_bytes_armv7m.S @@ -0,0 +1,177 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* + * This helper is derived from the public-domain XKCP implementation and the + * Armv7-M optimizations described in [ADOMNICAI23]. See the backend README, + * BIBLIOGRAPHY, and LICENSE files for full provenance and license terms. + */ + +/*yaml + Name: keccak_f1600_x1_state_extract_bytes_scalar_asm + Description: Scalar fallback for extracting bytes from the final x1 Keccak state lane pair + Signature: void mld_keccak_f1600_x1_state_extract_bytes_scalar_asm(void *state, uint8_t *data, unsigned offset, unsigned length) + ABI: + Architecture: armv81m + CallingConvention: AAPCS32 + Features: [] + r0: + type: buffer + size_bytes: 200 + permissions: read-only + c_parameter: void *state + description: Bit-interleaved x1 Keccak state + r1: + type: buffer + size_bytes: r3 + permissions: write-only + c_parameter: uint8_t *data + description: Output byte buffer + r2: + type: scalar + c_parameter: unsigned offset + description: Byte offset within the 200-byte state + test_with: 7 + r3: + type: scalar + c_parameter: unsigned length + description: Number of output bytes + test_with: 9 + Stack: + bytes: 32 + description: register preservation (24) plus one temporary lane (8) +*/ + +/* + * AAPCS32 contract: preserves r4-r11 and sp. The caller-saved r0-r3, r12, + * APSR condition flags, and lr may be clobbered. No floating-point or MVE + * registers are accessed. This is the private fallback for the MVE helper's + * final eight-byte state lane. + */ + +#include "../../../../common.h" + +#if defined(MLD_FIPS202_ARMV81M_NEED_X1) && \ + !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) +/* simpasm: header-end */ + +.thumb +.syntax unified +.text + +/* Convert one lane from even/odd bit-interleaved form to little-endian bytes. */ +.macro mld_keccak_x1_from_bit_interleaving x0, x1, t + movs \t, \x0 + bfi \x0, \x1, #16, #16 + bfc \x1, #0, #16 + orr \x1, \x1, \t, LSR #16 + + eor \t, \x0, \x0, LSR #8 + and \t, #0x0000FF00 + eors \x0, \x0, \t + eor \x0, \x0, \t, LSL #8 + + eor \t, \x0, \x0, LSR #4 + and \t, #0x00F000F0 + eors \x0, \x0, \t + eor \x0, \x0, \t, LSL #4 + + eor \t, \x0, \x0, LSR #2 + and \t, #0x0C0C0C0C + eors \x0, \x0, \t + eor \x0, \x0, \t, LSL #2 + + eor \t, \x0, \x0, LSR #1 + and \t, #0x22222222 + eors \x0, \x0, \t + eor \x0, \x0, \t, LSL #1 + + eor \t, \x1, \x1, LSR #8 + and \t, #0x0000FF00 + eors \x1, \x1, \t + eor \x1, \x1, \t, LSL #8 + + eor \t, \x1, \x1, LSR #4 + and \t, #0x00F000F0 + eors \x1, \x1, \t + eor \x1, \x1, \t, LSL #4 + + eor \t, \x1, \x1, LSR #2 + and \t, #0x0C0C0C0C + eors \x1, \x1, \t + eor \x1, \x1, \t, LSL #2 + + eor \t, \x1, \x1, LSR #1 + and \t, #0x22222222 + eors \x1, \x1, \t + eor \x1, \x1, \t, LSL #1 +.endm + +.macro mld_keccak_x1_extract_lanes +mld_keccak_f1600_x1_state_extract_bytes_scalar_lanes_loop: + ldrd r4, r5, [r0], #8 + mld_keccak_x1_from_bit_interleaving r4, r5, r3 + str r4, [r1], #4 + subs r2, r2, #1 + str r5, [r1], #4 + bne mld_keccak_f1600_x1_state_extract_bytes_scalar_lanes_loop +.endm + +.macro mld_keccak_x1_extract_bytes_in_lane label + ldrd r4, r5, [r0], #8 + mld_keccak_x1_from_bit_interleaving r4, r5, r6 + sub sp, #8 + strd r4, r5, [sp] + add r2, sp, r2 +mld_keccak_f1600_x1_state_extract_bytes_scalar_in_lane_loop_\label: + ldrb r4, [r2], #1 + subs r3, r3, #1 + strb r4, [r1], #1 + bne mld_keccak_f1600_x1_state_extract_bytes_scalar_in_lane_loop_\label + add sp, #8 +.endm + +.align 8 +.global MLD_ASM_NAMESPACE(keccak_f1600_x1_state_extract_bytes_scalar_asm) +.type MLD_ASM_NAMESPACE(keccak_f1600_x1_state_extract_bytes_scalar_asm), %function +MLD_ASM_FN_SYMBOL(keccak_f1600_x1_state_extract_bytes_scalar_asm) + cmp r3, #0 + beq.w mld_keccak_f1600_x1_state_extract_bytes_scalar_exit + push {r4-r8, lr} + bic r4, r2, #7 + adds r0, r0, r4 + ands r2, r2, #7 + beq.w mld_keccak_f1600_x1_state_extract_bytes_scalar_check_lanes + movs r4, r3 + rsb r5, r2, #8 + cmp r4, r5 + ble mld_keccak_f1600_x1_state_extract_bytes_scalar_align + movs r4, r5 +mld_keccak_f1600_x1_state_extract_bytes_scalar_align: + sub r8, r3, r4 + movs r3, r4 + mld_keccak_x1_extract_bytes_in_lane first + mov r3, r8 +mld_keccak_f1600_x1_state_extract_bytes_scalar_check_lanes: + lsrs r2, r3, #3 + beq.w mld_keccak_f1600_x1_state_extract_bytes_scalar_tail + mov r8, r3 + mld_keccak_x1_extract_lanes + and r3, r8, #7 +mld_keccak_f1600_x1_state_extract_bytes_scalar_tail: + cmp r3, #0 + beq.w mld_keccak_f1600_x1_state_extract_bytes_scalar_restore + movs r2, #0 + mld_keccak_x1_extract_bytes_in_lane tail +mld_keccak_f1600_x1_state_extract_bytes_scalar_restore: + pop {r4-r8, lr} +mld_keccak_f1600_x1_state_extract_bytes_scalar_exit: + bx lr + +MLD_ASM_FN_SIZE(keccak_f1600_x1_state_extract_bytes_scalar_asm) + +/* simpasm: footer-start */ +#endif /* MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_extract_bytes_mve.S b/dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_extract_bytes_mve.S new file mode 100644 index 0000000000..b6922b7498 --- /dev/null +++ b/dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_extract_bytes_mve.S @@ -0,0 +1,248 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * Copyright (c) 2026 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* + * This helper is adapted from the Armv8.1-M MVE x1 byte-operation work in + * mlkem-native. It converts two adjacent Keccak lanes at once between the + * bit-interleaved x1 representation and bytes. + */ + +/*yaml + Name: keccak_f1600_x1_state_extract_bytes_asm + Description: Armv8.1-M MVE fast path for extracting bytes from an x1 bit-interleaved Keccak state + Signature: void mld_keccak_f1600_x1_state_extract_bytes_asm(void *state, uint8_t *data, unsigned offset, unsigned length) + ABI: + Architecture: armv81m + CallingConvention: AAPCS32 + Features: [MVE] + r0: + type: buffer + size_bytes: 200 + permissions: read-only + c_parameter: void *state + description: Bit-interleaved x1 Keccak state, naturally aligned for 32-bit MVE state accesses + r1: + type: buffer + size_bytes: r3 + permissions: write-only + c_parameter: uint8_t *data + description: Arbitrarily byte-aligned output bytes + r2: + type: scalar + c_parameter: unsigned offset + description: Byte offset within the first 192 state bytes; the C wrapper dispatches final-lane ranges to the scalar helper + test_with: 7 + r3: + type: scalar + c_parameter: unsigned length + description: Number of output bytes such that offset plus length is at most 192 + test_with: 9 + Stack: + bytes: 40 + description: AAPCS32 preservation of r4-r11 and lr; the MVE fast path uses only caller-saved q0-q3 and p0 +*/ + +/* + * AAPCS32 contract: preserves r4-r11, sp, and d8-d15/q4-q7. The caller-saved + * r0-r3, r12, lr, APSR condition flags, q0-q3, and p0 may be clobbered. + * The MVE fast path covers only byte ranges ending at or before state byte + * 192, so each 16-byte state vector access remains within the 200-byte state. + * The C wrapper dispatches ranges touching the final eight-byte lane to the + * scalar helper. + */ + +#include "../../../../common.h" + +#if defined(MLD_FIPS202_ARMV81M_NEED_X1) && !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) && defined(__ARM_FEATURE_MVE) +/* simpasm: header-end */ + +.thumb +.syntax unified +.text + +/* Expand the compact even-bit representation into byte positions. */ +.macro mld_keccak_x1_mve_deinterleave_even e, tmp, const4, const16 + vsli.u32 \e, \e, #8 + vsli.u16 \e, \e, #4 + vsli.u8 \e, \e, #1 + vqdmulh.s8 \tmp, \e, \const16 + vsli.u8 \e, \tmp, #4 + vqdmulh.s8 \tmp, \e, \const4 + vsli.u8 \e, \tmp, #6 +.endm + +/* q0: two bit-interleaved lanes; prepare their even and odd bit planes. */ +.macro mld_keccak_x1_mve_prepare_from_bit_interleaving tmp + mov \tmp, #0x0f0f + vmsr p0, \tmp + vrev32.u16 q1, q0 + vrev64.u32 q2, q1 + vrev64.u32 q3, q0 + vpsel q0, q0, q2 + vpsel q1, q3, q1 +.endm + +/* Expand the prepared bit planes and merge them into byte-order lanes. */ +.macro mld_keccak_x1_mve_finish_from_bit_interleaving tmp, const4, const16 + mld_keccak_x1_mve_deinterleave_even q0, q2, \const4, \const16 + mld_keccak_x1_mve_deinterleave_even q1, q2, \const4, \const16 + mov \tmp, #0x55 + vdup.u8 q2, \tmp + vand.u32 q0, q0, q2 + vand.u32 q1, q1, q2 + vshl.u32 q1, q1, #1 + vorr.u32 q0, q1, q0 +.endm + +.balign 8 +.global MLD_ASM_NAMESPACE(keccak_f1600_x1_state_extract_bytes_asm) +.type MLD_ASM_NAMESPACE(keccak_f1600_x1_state_extract_bytes_asm), %function +MLD_ASM_FN_SYMBOL(keccak_f1600_x1_state_extract_bytes_asm) + cmp r3, #0 + beq.w mld_keccak_f1600_x1_state_extract_bytes_mve_exit + + push {r4-r12, lr} + + state .req r0 + dp .req r1 + off_full .req r2 + length .req r3 + tmp .req r4 + nbytes .req lr + off .req r5 + const4 .req r6 + const16 .req r7 + state_pair_offset .req r9 + mask .req r11 + qdata .req q0 + + mov const4, #4 + mov const16, #16 + and off, off_full, #15 + bic state_pair_offset, off_full, #15 + add state, state, state_pair_offset + + /* Extract the first partial two-lane group, if any. */ + cmp off, #0 + beq.w mld_keccak_f1600_x1_state_extract_bytes_mve_pre_main + subs dp, dp, off + rsb nbytes, off, #16 + cmp length, nbytes + it ls + movls nbytes, length + subs length, length, nbytes + vldrw.u32 qdata, [state], #16 + mld_keccak_x1_mve_prepare_from_bit_interleaving tmp + mld_keccak_x1_mve_finish_from_bit_interleaving tmp, const4, const16 + vctp.8 nbytes + vmrs mask, p0 + lsl mask, mask, off + vmsr p0, mask + vpst + vstrbt.u8 qdata, [dp], #16 + cmp length, #0 + beq.w mld_keccak_f1600_x1_state_extract_bytes_mve_restore + +mld_keccak_f1600_x1_state_extract_bytes_mve_pre_main: + lsr nbytes, length, #4 + wls nbytes, nbytes, mld_keccak_f1600_x1_state_extract_bytes_mve_main_loop_end +mld_keccak_f1600_x1_state_extract_bytes_mve_slothy_prepare: + vldrw.u32 qdata, [state], #16 + mld_keccak_x1_mve_prepare_from_bit_interleaving tmp + mld_keccak_f1600_x1_state_extract_bytes_mve_slothy_start: + // Instructions: 21 + // Expected cycles: 21 + // Expected IPC: 1.00 + // + // ----- cycle (expected) ------> + // 0 25 + // |------------------------|---- + vsli.U32 q0, q0, #8 // *............................. + vsli.U16 q0, q0, #4 // .*............................ + vsli.U8 q0, q0, #1 // ..*........................... + vqdmulh.S8 q3, q0, r7 // ...*.......................... + vsli.U8 q0, q3, #4 // ....*......................... + vqdmulh.S8 q2, q0, r6 // .....*........................ + vsli.U32 q1, q1, #8 // ......*....................... + vsli.U8 q0, q2, #6 // .......*...................... + vsli.U16 q1, q1, #4 // ........*..................... + vsli.U8 q1, q1, #1 // .........*.................... + vqdmulh.S8 q3, q1, r7 // ..........*................... + vsli.U8 q1, q3, #4 // ...........*.................. + vqdmulh.S8 q3, q1, r6 // ............*................. + vsli.U8 q1, q3, #6 // .............*................ + mov r2, #0x55 // ..............*............... + vdup.U8 q3, r2 // ...............*.............. + vand.U32 q2, q0, q3 // ................*............. + vand.U32 q3, q1, q3 // .................*............ + vshl.U32 q1, q3, #1 // ..................*........... + vorr.U32 q0, q1, q2 // ...................*.......... + vstrb.U8 q0, [r1], #16 // ....................*......... + + // ------ cycle (expected) ------> + // 0 25 + // |------------------------|----- + // vsli.U32 q0, q0, #8 // *.............................. + // vsli.U16 q0, q0, #4 // .*............................. + // vsli.U8 q0, q0, #1 // ..*............................ + // vqdmulh.S8 q3, q0, r7 // ...*........................... + // vsli.U8 q0, q3, #4 // ....*.......................... + // vqdmulh.S8 q3, q0, r6 // .....*......................... + // vsli.U8 q0, q3, #6 // .......*....................... + // vsli.U32 q1, q1, #8 // ......*........................ + // vsli.U16 q1, q1, #4 // ........*...................... + // vsli.U8 q1, q1, #1 // .........*..................... + // vqdmulh.S8 q3, q1, r7 // ..........*.................... + // vsli.U8 q1, q3, #4 // ...........*................... + // vqdmulh.S8 q3, q1, r6 // ............*.................. + // vsli.U8 q1, q3, #6 // .............*................. + // mov r2, #0x55 // ..............*................ + // vdup.U8 q3, r2 // ...............*............... + // vand.U32 q2, q0, q3 // ................*.............. + // vand.U32 q1, q1, q3 // .................*............. + // vshl.U32 q1, q1, #1 // ..................*............ + // vorr.U32 q0, q1, q2 // ...................*........... + // vstrb.U8 q0, [r1], #16 // ....................*.......... + + mld_keccak_f1600_x1_state_extract_bytes_mve_slothy_end: + + + le nbytes, mld_keccak_f1600_x1_state_extract_bytes_mve_slothy_prepare +mld_keccak_f1600_x1_state_extract_bytes_mve_main_loop_end: + ands length, length, #15 + beq.w mld_keccak_f1600_x1_state_extract_bytes_mve_restore + + vldrw.u32 qdata, [state] + mld_keccak_x1_mve_prepare_from_bit_interleaving tmp + mld_keccak_x1_mve_finish_from_bit_interleaving tmp, const4, const16 + vctp.8 length + vpst + vstrbt.u8 qdata, [dp], #16 + +mld_keccak_f1600_x1_state_extract_bytes_mve_restore: + pop {r4-r12, lr} +mld_keccak_f1600_x1_state_extract_bytes_mve_exit: + bx lr + + .unreq state + .unreq dp + .unreq off_full + .unreq length + .unreq tmp + .unreq nbytes + .unreq off + .unreq const4 + .unreq const16 + .unreq state_pair_offset + .unreq mask + .unreq qdata + +MLD_ASM_FN_SIZE(keccak_f1600_x1_state_extract_bytes_asm) + +/* simpasm: footer-start */ +#endif /* MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED && \ + __ARM_FEATURE_MVE */ diff --git a/dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_xor_bytes_armv7m.S b/dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_xor_bytes_armv7m.S new file mode 100644 index 0000000000..fdd677ee0f --- /dev/null +++ b/dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_xor_bytes_armv7m.S @@ -0,0 +1,186 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* + * This helper is derived from the public-domain XKCP implementation and the + * Armv7-M optimizations described in [ADOMNICAI23]. See the backend README, + * BIBLIOGRAPHY, and LICENSE files for full provenance and license terms. + */ + +/*yaml + Name: keccak_f1600_x1_state_xor_bytes_scalar_asm + Description: Scalar fallback for XORing bytes into the final x1 Keccak state lane pair + Signature: void mld_keccak_f1600_x1_state_xor_bytes_scalar_asm(void *state, const uint8_t *data, unsigned offset, unsigned length) + ABI: + Architecture: armv81m + CallingConvention: AAPCS32 + Features: [] + r0: + type: buffer + size_bytes: 200 + permissions: read/write + c_parameter: void *state + description: Bit-interleaved x1 Keccak state + r1: + type: buffer + size_bytes: r3 + permissions: read-only + c_parameter: const uint8_t *data + description: Bytes to XOR into the state + r2: + type: scalar + c_parameter: unsigned offset + description: Byte offset within the 200-byte state + test_with: 7 + r3: + type: scalar + c_parameter: unsigned length + description: Number of input bytes + test_with: 9 + Stack: + bytes: 32 + description: register preservation (24) plus one temporary lane (8) +*/ + +/* + * AAPCS32 contract: preserves r4-r11 and sp. The caller-saved r0-r3, r12, + * APSR condition flags, and lr may be clobbered. No floating-point or MVE + * registers are accessed. This is the private fallback for the MVE helper's + * final eight-byte state lane. + */ + +#include "../../../../common.h" + +#if defined(MLD_FIPS202_ARMV81M_NEED_X1) && \ + !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) +/* simpasm: header-end */ + +.thumb +.syntax unified +.text + +/* Convert one little-endian lane to the even/odd bit-interleaved form. */ +.macro mld_keccak_x1_to_bit_interleaving x0, x1, s0, s1, t, over + and \t, \x0, #0x55555555 + orr \t, \t, \t, LSR #1 + and \t, \t, #0x33333333 + orr \t, \t, \t, LSR #2 + and \t, \t, #0x0F0F0F0F + orr \t, \t, \t, LSR #4 + and \t, \t, #0x00FF00FF + bfi \t, \t, #8, #8 + .if \over != 0 + lsr \s0, \t, #8 + .else + eor \s0, \s0, \t, LSR #8 + .endif + + and \t, \x1, #0x55555555 + orr \t, \t, \t, LSR #1 + and \t, \t, #0x33333333 + orr \t, \t, \t, LSR #2 + and \t, \t, #0x0F0F0F0F + orr \t, \t, \t, LSR #4 + and \t, \t, #0x00FF00FF + orr \t, \t, \t, LSR #8 + eor \s0, \s0, \t, LSL #16 + + and \t, \x0, #0xAAAAAAAA + orr \t, \t, \t, LSL #1 + and \t, \t, #0xCCCCCCCC + orr \t, \t, \t, LSL #2 + and \t, \t, #0xF0F0F0F0 + orr \t, \t, \t, LSL #4 + and \t, \t, #0xFF00FF00 + orr \t, \t, \t, LSL #8 + .if \over != 0 + lsr \s1, \t, #16 + .else + eor \s1, \s1, \t, LSR #16 + .endif + + and \t, \x1, #0xAAAAAAAA + orr \t, \t, \t, LSL #1 + and \t, \t, #0xCCCCCCCC + orr \t, \t, \t, LSL #2 + and \t, \t, #0xF0F0F0F0 + orr \t, \t, \t, LSL #4 + and \t, \t, #0xFF00FF00 + orr \t, \t, \t, LSL #8 + bfc \t, #0, #16 + eors \s1, \s1, \t +.endm + +.macro mld_keccak_x1_xor_lanes +mld_keccak_f1600_x1_state_xor_bytes_scalar_lanes_loop: + ldr r4, [r1], #4 + ldr r5, [r1], #4 + ldrd r6, r7, [r0] + mld_keccak_x1_to_bit_interleaving r4, r5, r6, r7, r3, 0 + strd r6, r7, [r0], #8 + subs r2, r2, #1 + bne mld_keccak_f1600_x1_state_xor_bytes_scalar_lanes_loop +.endm + +.macro mld_keccak_x1_xor_bytes_in_lane label + movs r4, #0 + movs r5, #0 + sub sp, #8 + strd r4, r5, [sp] + add r2, r2, sp +mld_keccak_f1600_x1_state_xor_bytes_scalar_in_lane_loop_\label: + ldrb r5, [r1], #1 + strb r5, [r2], #1 + subs r3, r3, #1 + bne mld_keccak_f1600_x1_state_xor_bytes_scalar_in_lane_loop_\label + ldrd r4, r5, [sp] + add sp, #8 + ldrd r6, r7, [r0] + mld_keccak_x1_to_bit_interleaving r4, r5, r6, r7, r3, 0 + strd r6, r7, [r0], #8 +.endm + +.align 8 +.global MLD_ASM_NAMESPACE(keccak_f1600_x1_state_xor_bytes_scalar_asm) +.type MLD_ASM_NAMESPACE(keccak_f1600_x1_state_xor_bytes_scalar_asm), %function +MLD_ASM_FN_SYMBOL(keccak_f1600_x1_state_xor_bytes_scalar_asm) + cmp r3, #0 + beq.w mld_keccak_f1600_x1_state_xor_bytes_scalar_exit + push {r4-r8, lr} + bic r4, r2, #7 + adds r0, r0, r4 + ands r2, r2, #7 + beq.w mld_keccak_f1600_x1_state_xor_bytes_scalar_check_lanes + movs r4, r3 + rsb r5, r2, #8 + cmp r4, r5 + ble mld_keccak_f1600_x1_state_xor_bytes_scalar_align + movs r4, r5 +mld_keccak_f1600_x1_state_xor_bytes_scalar_align: + sub r8, r3, r4 + movs r3, r4 + mld_keccak_x1_xor_bytes_in_lane first + mov r3, r8 +mld_keccak_f1600_x1_state_xor_bytes_scalar_check_lanes: + lsrs r2, r3, #3 + beq.w mld_keccak_f1600_x1_state_xor_bytes_scalar_tail + mov r8, r3 + mld_keccak_x1_xor_lanes + and r3, r8, #7 +mld_keccak_f1600_x1_state_xor_bytes_scalar_tail: + cmp r3, #0 + beq.w mld_keccak_f1600_x1_state_xor_bytes_scalar_restore + movs r2, #0 + mld_keccak_x1_xor_bytes_in_lane tail +mld_keccak_f1600_x1_state_xor_bytes_scalar_restore: + pop {r4-r8, lr} +mld_keccak_f1600_x1_state_xor_bytes_scalar_exit: + bx lr + +MLD_ASM_FN_SIZE(keccak_f1600_x1_state_xor_bytes_scalar_asm) + +/* simpasm: footer-start */ +#endif /* MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_xor_bytes_mve.S b/dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_xor_bytes_mve.S new file mode 100644 index 0000000000..06c69eae6c --- /dev/null +++ b/dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_xor_bytes_mve.S @@ -0,0 +1,272 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * Copyright (c) 2026 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* + * This helper is adapted from the Armv8.1-M MVE x1 byte-operation work in + * mlkem-native. It converts two adjacent Keccak lanes at once between bytes + * and the bit-interleaved x1 representation. + */ + +/*yaml + Name: keccak_f1600_x1_state_xor_bytes_asm + Description: Armv8.1-M MVE fast path for XORing bytes into an x1 bit-interleaved Keccak state + Signature: void mld_keccak_f1600_x1_state_xor_bytes_asm(void *state, const uint8_t *data, unsigned offset, unsigned length) + ABI: + Architecture: armv81m + CallingConvention: AAPCS32 + Features: [MVE] + r0: + type: buffer + size_bytes: 200 + permissions: read/write + c_parameter: void *state + description: Bit-interleaved x1 Keccak state, naturally aligned for 32-bit MVE state accesses + r1: + type: buffer + size_bytes: r3 + permissions: read-only + c_parameter: const uint8_t *data + description: Arbitrarily byte-aligned input bytes to XOR into the state + r2: + type: scalar + c_parameter: unsigned offset + description: Byte offset within the first 192 state bytes; the C wrapper dispatches final-lane ranges to the scalar helper + test_with: 7 + r3: + type: scalar + c_parameter: unsigned length + description: Number of input bytes such that offset plus length is at most 192 + test_with: 9 + Stack: + bytes: 40 + description: AAPCS32 preservation of r4-r11 and lr; the MVE fast path uses only caller-saved q0-q3 and p0 +*/ + +/* + * AAPCS32 contract: preserves r4-r11, sp, and d8-d15/q4-q7. The caller-saved + * r0-r3, r12, lr, APSR condition flags, q0-q3, and p0 may be clobbered. + * The MVE fast path covers only byte ranges ending at or before state byte + * 192, so each 16-byte state vector access remains within the 200-byte state. + * The C wrapper dispatches ranges touching the final eight-byte lane to the + * scalar helper. + */ + +#include "../../../../common.h" + +#if defined(MLD_FIPS202_ARMV81M_NEED_X1) && !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) && defined(__ARM_FEATURE_MVE) +/* simpasm: header-end */ + +.thumb +.syntax unified +.text + +/* Compact the even bits of each element into the low half. */ +.macro mld_keccak_x1_mve_interleave_evens t, u, const8, const16, const32, const128, const32768 + vqdmulh.s8 \u, \t, \const32 + vsli.u8 \t, \u, #1 + vqdmulh.s8 \u, \t, \const16 + vsli.u8 \t, \u, #2 + vqdmulh.s8 \u, \t, \const8 + vsli.u8 \t, \u, #3 + vqdmulh.s16 \u, \t, \const128 + vsli.u8 \t, \u, #4 + vqdmulh.s32 \u, \t, \const32768 + vsli.u16 \t, \u, #8 +.endm + +/* q0: two byte-order lanes; result: their bit-interleaved representation. */ +.macro mld_keccak_x1_mve_to_bit_interleaving tmp, const8, const16, const32, const128, const32768 + vshr.u32 q1, q0, #1 + mld_keccak_x1_mve_interleave_evens q1, q2, \const8, \const16, \const32, \const128, \const32768 + vrev64.u32 q2, q1 + vsli.u32 q2, q1, #16 + mld_keccak_x1_mve_interleave_evens q0, q3, \const8, \const16, \const32, \const128, \const32768 + vrev64.u32 q3, q0 + vsli.u32 q0, q3, #16 +.endm + +/* Kept outside the SLOTHY region: the pinned parser has no VMSR/VPSEL + * predicate-instruction support. */ +.macro mld_keccak_x1_mve_select_bit_planes tmp + mov \tmp, #0x0f0f + vmsr p0, \tmp + vpsel q0, q0, q2 +.endm + +.balign 8 +.global MLD_ASM_NAMESPACE(keccak_f1600_x1_state_xor_bytes_asm) +.type MLD_ASM_NAMESPACE(keccak_f1600_x1_state_xor_bytes_asm), %function +MLD_ASM_FN_SYMBOL(keccak_f1600_x1_state_xor_bytes_asm) + cmp r3, #0 + beq.w mld_keccak_f1600_x1_state_xor_bytes_mve_exit + + push {r4-r12, lr} + + state .req r0 + dp .req r1 + off_full .req r2 + length .req r3 + tmp .req r4 + off .req r5 + state_pair_offset .req r6 + const8 .req r8 + const16 .req r9 + const32 .req r10 + const128 .req r11 + const32768 .req r12 + nbytes .req lr + qdata .req q0 + qstate .req q1 + + mov const8, #8 + mov const16, #16 + mov const32, #32 + mov const128, #128 + mov const32768, #32768 + + and off, off_full, #15 + bic state_pair_offset, off_full, #15 + add state, state, state_pair_offset + + /* Absorb the first partial two-lane group, if any. */ + cmp off, #0 + beq.w mld_keccak_f1600_x1_state_xor_bytes_mve_pre_main + subs dp, dp, off + rsb nbytes, off, #16 + cmp length, nbytes + it ls + movls nbytes, length + subs length, length, nbytes + vctp.8 nbytes + vmrs tmp, p0 + lsl tmp, tmp, off + vmsr p0, tmp + vpst + vldrbt.u8 qdata, [dp], #16 + mld_keccak_x1_mve_to_bit_interleaving tmp, const8, const16, const32, const128, const32768 + mld_keccak_x1_mve_select_bit_planes tmp + vldrw.u32 qstate, [state] + veor qstate, qstate, qdata + vstrw.u32 qstate, [state], #16 + cmp length, #0 + beq.w mld_keccak_f1600_x1_state_xor_bytes_mve_restore + +mld_keccak_f1600_x1_state_xor_bytes_mve_pre_main: + lsr nbytes, length, #4 + wls nbytes, nbytes, mld_keccak_f1600_x1_state_xor_bytes_mve_main_loop_end + mld_keccak_f1600_x1_state_xor_bytes_mve_slothy_start: + // Instructions: 26 + // Expected cycles: 26 + // Expected IPC: 1.00 + // + // ----- cycle (expected) ------> + // 0 25 + // |------------------------|---- + vldrb.U8 q0, [r1], #16 // *............................. + vshr.U32 q3, q0, #1 // .*............................ + vqdmulh.S8 q2, q3, r10 // ..*........................... + vsli.U8 q3, q2, #1 // ...*.......................... + vqdmulh.S8 q2, q3, r9 // ....*......................... + vsli.U8 q3, q2, #2 // .....*........................ + vqdmulh.S8 q2, q3, r8 // ......*....................... + vsli.U8 q3, q2, #3 // .......*...................... + vqdmulh.S16 q2, q3, r11 // ........*..................... + vsli.U8 q3, q2, #4 // .........*.................... + vqdmulh.S32 q2, q3, r12 // ..........*................... + vsli.U16 q3, q2, #8 // ...........*.................. + vqdmulh.S8 q1, q0, r10 // ............*................. + vrev64.U32 q2, q3 // .............*................ + vsli.U8 q0, q1, #1 // ..............*............... + vsli.U32 q2, q3, #16 // ...............*.............. + vqdmulh.S8 q3, q0, r9 // ................*............. + vsli.U8 q0, q3, #2 // .................*............ + vqdmulh.S8 q3, q0, r8 // ..................*........... + vsli.U8 q0, q3, #3 // ...................*.......... + vqdmulh.S16 q3, q0, r11 // ....................*......... + vsli.U8 q0, q3, #4 // .....................*........ + vqdmulh.S32 q3, q0, r12 // ......................*....... + vsli.U16 q0, q3, #8 // .......................*...... + vrev64.U32 q3, q0 // ........................*..... + vsli.U32 q0, q3, #16 // .........................*.... + + // ------ cycle (expected) ------> + // 0 25 + // |------------------------|----- + // vldrb.U8 q0, [r1], #16 // *.............................. + // vshr.U32 q3, q0, #1 // .*............................. + // vqdmulh.S8 q2, q3, r10 // ..*............................ + // vsli.U8 q3, q2, #1 // ...*........................... + // vqdmulh.S8 q2, q3, r9 // ....*.......................... + // vsli.U8 q3, q2, #2 // .....*......................... + // vqdmulh.S8 q1, q3, r8 // ......*........................ + // vsli.U8 q3, q1, #3 // .......*....................... + // vqdmulh.S16 q2, q3, r11 // ........*...................... + // vsli.U8 q3, q2, #4 // .........*..................... + // vqdmulh.S32 q1, q3, r12 // ..........*.................... + // vsli.U16 q3, q1, #8 // ...........*................... + // vrev64.U32 q2, q3 // .............*................. + // vsli.U32 q2, q3, #16 // ...............*............... + // vqdmulh.S8 q3, q0, r10 // ............*.................. + // vsli.U8 q0, q3, #1 // ..............*................ + // vqdmulh.S8 q3, q0, r9 // ................*.............. + // vsli.U8 q0, q3, #2 // .................*............. + // vqdmulh.S8 q3, q0, r8 // ..................*............ + // vsli.U8 q0, q3, #3 // ...................*........... + // vqdmulh.S16 q3, q0, r11 // ....................*.......... + // vsli.U8 q0, q3, #4 // .....................*......... + // vqdmulh.S32 q3, q0, r12 // ......................*........ + // vsli.U16 q0, q3, #8 // .......................*....... + // vrev64.U32 q3, q0 // ........................*...... + // vsli.U32 q0, q3, #16 // .........................*..... + + mld_keccak_f1600_x1_state_xor_bytes_mve_slothy_end: + + + mld_keccak_x1_mve_select_bit_planes tmp + vldrw.u32 qstate, [state] + veor qstate, qstate, qdata + vstrw.u32 qstate, [state], #16 + le nbytes, mld_keccak_f1600_x1_state_xor_bytes_mve_slothy_start +mld_keccak_f1600_x1_state_xor_bytes_mve_main_loop_end: + ands length, length, #15 + beq.w mld_keccak_f1600_x1_state_xor_bytes_mve_restore + + vctp.8 length + vpst + vldrbt.u8 qdata, [dp], #16 + mld_keccak_x1_mve_to_bit_interleaving tmp, const8, const16, const32, const128, const32768 + mld_keccak_x1_mve_select_bit_planes tmp + vldrw.u32 qstate, [state] + veor qstate, qstate, qdata + vstrw.u32 qstate, [state] + +mld_keccak_f1600_x1_state_xor_bytes_mve_restore: + pop {r4-r12, lr} +mld_keccak_f1600_x1_state_xor_bytes_mve_exit: + bx lr + + .unreq state + .unreq dp + .unreq off_full + .unreq length + .unreq tmp + .unreq off + .unreq state_pair_offset + .unreq const8 + .unreq const16 + .unreq const32 + .unreq const128 + .unreq const32768 + .unreq nbytes + .unreq qdata + .unreq qstate + +MLD_ASM_FN_SIZE(keccak_f1600_x1_state_xor_bytes_asm) + +/* simpasm: footer-start */ +#endif /* MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED && \ + __ARM_FEATURE_MVE */ diff --git a/dev/fips202/armv81m_opt/src/slothy_keccak_m4.py b/dev/fips202/armv81m_opt/src/slothy_keccak_m4.py new file mode 100644 index 0000000000..ed63fca724 --- /dev/null +++ b/dev/fips202/armv81m_opt/src/slothy_keccak_m4.py @@ -0,0 +1,117 @@ +#!/usr/bin/env python3 +# Copyright (c) The mldsa-native project authors +# SPDX-License-Identifier: MIT + +import argparse +import logging +import sys + +from slothy import Slothy +import slothy.targets.arm_v81m.arch_v81m as Arch_Armv81M +import slothy.targets.arm_v81m.cortex_m55r1 as Target_CortexM55r1 + + +ADOMNICAI_M4_OUTPUTS = [ + "flags", + "hint_r0Aba1", + "hint_r0Aka1", + "hint_spEba0", + "hint_spEba1", + "hint_spEbe0", + "hint_spEbe1", + "hint_spEbi0", + "hint_spEbi1", + "hint_spEbo0", + "hint_spEbo1", + "hint_spEbu0", + "hint_spEbu1", + "hint_spEga0", + "hint_spEga1", + "hint_spEge0", + "hint_spEge1", + "hint_spEgi0", + "hint_spEgi1", + "hint_spEgo0", + "hint_spEgo1", + "hint_spEgu0", + "hint_spEgu1", + "hint_spEka0", + "hint_spEka1", + "hint_spEke0", + "hint_spEke1", + "hint_spEki0", + "hint_spEki1", + "hint_spEko0", + "hint_spEko1", + "hint_spEku0", + "hint_spEku1", + "hint_spEma0", + "hint_spEma1", + "hint_spEme0", + "hint_spEme1", + "hint_spEmi0", + "hint_spEmi1", + "hint_spEmo0", + "hint_spEmo1", + "hint_spEmu0", + "hint_spEmu1", + "hint_spEsa0", + "hint_spEsa1", + "hint_spEse0", + "hint_spEse1", + "hint_spEsi0", + "hint_spEsi1", + "hint_spEso0", + "hint_spEso1", + "hint_spEsu0", + "hint_spEsu1", + "hint_spmDa0", +] + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("input") + parser.add_argument("output") + args = parser.parse_args() + + logging.basicConfig(level=logging.INFO, stream=sys.stdout) + slothy = Slothy( + Arch_Armv81M, + Target_CortexM55r1, + logger=logging.getLogger("slothy-keccak-m55"), + ) + + slothy.config.inputs_are_outputs = True + slothy.config.variable_size = True + slothy.config.reserved_regs = ["sp", "r13"] + slothy.config.locked_registers = ["sp", "r13"] + slothy.config.unsafe_address_offset_fixup = False + + slothy.config.split_heuristic = True + # Match the accepted Cortex-M55 schedule policy. + # Keep the checked-in selected schedule frozen: SLOTHY schedules are not + # expected to be byte-reproducible across solver runs. + slothy.config.split_heuristic_preprocess_naive_interleaving = False + slothy.config.split_heuristic_estimate_performance = False + slothy.config.split_heuristic_repeat = 2 + slothy.config.split_heuristic_optimize_seam = 6 + slothy.config.split_heuristic_stepsize = 0.05 + + slothy.config.outputs = ADOMNICAI_M4_OUTPUTS + slothy.config.split_heuristic_factor = 22 + slothy.config.constraints.stalls_first_attempt = 16 + + slothy.config.timeout = 1000 + slothy.config.retry_timeout = 1000 + + slothy.load_source_from_file(args.input) + slothy.optimize( + start="mld_keccak_f1600_x1_armv7m_asm_slothy_start", + end="mld_keccak_f1600_x1_armv7m_asm_slothy_end", + ) + slothy.write_source_to_file(args.output) + + +if __name__ == "__main__": + main() diff --git a/dev/fips202/armv81m_opt/src/slothy_keccak_x1_helpers_mve.py b/dev/fips202/armv81m_opt/src/slothy_keccak_x1_helpers_mve.py new file mode 100644 index 0000000000..7ea420091b --- /dev/null +++ b/dev/fips202/armv81m_opt/src/slothy_keccak_x1_helpers_mve.py @@ -0,0 +1,97 @@ +#!/usr/bin/env python3 +# Copyright (c) The mldsa-native project authors +# SPDX-License-Identifier: MIT + +"""Schedule the Armv8.1-M MVE x1 Keccak byte-helper hot loops. + +The selected schedule is deliberately restricted to q0-q3: q4-q7 alias the +AAPCS32 callee-saved d8-d15 registers, while these public helpers have no MVE +save/restore wrapper. The clean source owns the metadata and non-loop safety +logic; only the marked hot loop is given to SLOTHY. +""" + +import argparse +import logging +import os +import tempfile + +from slothy import Slothy +import slothy.targets.arm_v81m.arch_v81m as Arch_Armv81M +import slothy.targets.arm_v81m.cortex_m55r1 as Target_CortexM55r1 + + +def configure(slothy, helper, functional_only): + """Apply the fixed scheduling policy shared by both helper variants.""" + + slothy.config.inputs_are_outputs = True + # The scheduled XOR conversion feeds the fixed predicate/select sequence + # immediately after it. Declare those values and the byte pointer as live. + # The extract schedule includes its final byte store, so only its pointer + # must remain live across loop iterations. + slothy.config.outputs = ["q0", "q2", "r1"] if helper == "xor" else ["r1"] + slothy.config.variable_size = not functional_only + # `reserved_regs` replaces the target default, so retain flags, r13/r14. + # q4-q7 are d8-d15 and must not be introduced by register renaming. + slothy.config.reserved_regs = [ + "flags", + "r13", + "r14", + "q4", + "q5", + "q6", + "q7", + ] + slothy.config.locked_registers = slothy.config.reserved_regs + slothy.config.unsafe_address_offset_fixup = False + slothy.config.constraints.functional_only = functional_only + slothy.config.constraints.allow_reordering = True + slothy.config.constraints.max_displacement = 0.1 if functional_only else 1.0 + slothy.config.constraints.stalls_first_attempt = 64 + slothy.config.constraints.stalls_maximum_attempt = 4096 + slothy.config.timeout = 1000 + slothy.config.retry_timeout = 1000 + + if not functional_only: + slothy.config.split_heuristic = True + slothy.config.split_heuristic_stepsize = 0.05 + slothy.config.split_heuristic_factor = 26 + slothy.config.split_heuristic_repeat = 2 + slothy.config.split_heuristic_estimate_performance = False + slothy.config.split_heuristic_optimize_seam = 2 + + +def optimize(input_file, output_file, start, end, helper, functional_only): + slothy = Slothy( + Arch_Armv81M, + Target_CortexM55r1, + logger=logging.getLogger("slothy-keccak-x1-helpers-mve"), + ) + configure(slothy, helper, functional_only) + slothy.load_source_from_file(input_file) + slothy.optimize(start=start, end=end) + slothy.write_source_to_file(output_file) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("input") + parser.add_argument("output") + parser.add_argument("helper", choices=("xor", "extract")) + args = parser.parse_args() + + logging.basicConfig(level=logging.INFO) + stem = "mld_keccak_f1600_x1_state_{}_bytes_mve".format(args.helper) + start = stem + "_slothy_start" + end = stem + "_slothy_end" + + with tempfile.NamedTemporaryFile(suffix=".S", delete=False) as tmp: + tmp_name = tmp.name + try: + optimize(args.input, tmp_name, start, end, args.helper, functional_only=True) + optimize(tmp_name, args.output, start, end, args.helper, functional_only=False) + finally: + os.unlink(tmp_name) + + +if __name__ == "__main__": + main() diff --git a/mldsa/mldsa_native.c b/mldsa/mldsa_native.c index 85e9e60f64..87df08542f 100644 --- a/mldsa/mldsa_native.c +++ b/mldsa/mldsa_native.c @@ -98,6 +98,9 @@ #include "src/fips202/native/armv81m/src/keccak_f1600_x4_mve.c" #include "src/fips202/native/armv81m/src/keccakf1600_round_constants.c" #endif +#if defined(MLD_SYS_ARMV81M_MVE) +#include "src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.c" +#endif #endif /* MLD_CONFIG_USE_NATIVE_BACKEND_FIPS202 */ /* Macro #undef's @@ -667,6 +670,16 @@ #undef MLD_USE_NATIVE_FIPS202_X4_EXTRACT_BYTES #undef MLD_USE_NATIVE_FIPS202_X4_XOR_BYTES #undef mld_keccak_f1600_x4_native_impl +/* mldsa/src/fips202/native/armv81m/mve_x1.h */ +#undef MLD_FIPS202_ARMV81M_NEED_X1 +#undef MLD_FIPS202_NATIVE_ARMV81M +#undef MLD_FIPS202_NATIVE_ARMV81M_MVE_X1_H +#undef MLD_USE_NATIVE_FIPS202_X1 +#undef MLD_USE_NATIVE_FIPS202_X1_EXTRACT_BYTES +#undef MLD_USE_NATIVE_FIPS202_X1_XOR_BYTES +#undef mld_keccak_f1600_x1_native_impl +#undef mld_keccakf1600_extract_bytes_x1_native_impl +#undef mld_keccakf1600_xor_bytes_x1_native_impl /* mldsa/src/fips202/native/armv81m/src/fips202_native_armv81m.h */ #undef MLD_FIPS202_NATIVE_ARMV81M_SRC_FIPS202_NATIVE_ARMV81M_H #undef mld_keccak_f1600_x4_mve_asm diff --git a/mldsa/mldsa_native_asm.S b/mldsa/mldsa_native_asm.S index 61d4186a5f..1b8074a37d 100644 --- a/mldsa/mldsa_native_asm.S +++ b/mldsa/mldsa_native_asm.S @@ -116,6 +116,13 @@ #include "src/fips202/native/armv81m/src/keccak_f1600_x4_state_extract_bytes_mve.S" #include "src/fips202/native/armv81m/src/keccak_f1600_x4_state_xor_bytes_mve.S" #endif +#if defined(MLD_SYS_ARMV81M_MVE) +#include "src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m_opt_m55.S" +#include "src/fips202/native/armv81m/src/keccak_f1600_x1_state_extract_bytes_armv7m.S" +#include "src/fips202/native/armv81m/src/keccak_f1600_x1_state_extract_bytes_mve.S" +#include "src/fips202/native/armv81m/src/keccak_f1600_x1_state_xor_bytes_armv7m.S" +#include "src/fips202/native/armv81m/src/keccak_f1600_x1_state_xor_bytes_mve.S" +#endif /* MLD_SYS_ARMV81M_MVE */ #endif /* MLD_CONFIG_USE_NATIVE_BACKEND_FIPS202 */ @@ -694,6 +701,16 @@ #undef MLD_USE_NATIVE_FIPS202_X4_EXTRACT_BYTES #undef MLD_USE_NATIVE_FIPS202_X4_XOR_BYTES #undef mld_keccak_f1600_x4_native_impl +/* mldsa/src/fips202/native/armv81m/mve_x1.h */ +#undef MLD_FIPS202_ARMV81M_NEED_X1 +#undef MLD_FIPS202_NATIVE_ARMV81M +#undef MLD_FIPS202_NATIVE_ARMV81M_MVE_X1_H +#undef MLD_USE_NATIVE_FIPS202_X1 +#undef MLD_USE_NATIVE_FIPS202_X1_EXTRACT_BYTES +#undef MLD_USE_NATIVE_FIPS202_X1_XOR_BYTES +#undef mld_keccak_f1600_x1_native_impl +#undef mld_keccakf1600_extract_bytes_x1_native_impl +#undef mld_keccakf1600_xor_bytes_x1_native_impl /* mldsa/src/fips202/native/armv81m/src/fips202_native_armv81m.h */ #undef MLD_FIPS202_NATIVE_ARMV81M_SRC_FIPS202_NATIVE_ARMV81M_H #undef mld_keccak_f1600_x4_mve_asm diff --git a/mldsa/src/fips202/keccakf1600.c b/mldsa/src/fips202/keccakf1600.c index 1fb5240a3c..59c1414d53 100644 --- a/mldsa/src/fips202/keccakf1600.c +++ b/mldsa/src/fips202/keccakf1600.c @@ -40,6 +40,13 @@ void mld_keccakf1600_extract_bytes(uint64_t *state, unsigned char *data, unsigned offset, unsigned length) { unsigned i; +#if defined(MLD_USE_NATIVE_FIPS202_X1_EXTRACT_BYTES) + if (mld_keccakf1600_extract_bytes_x1_native(state, data, offset, length) == + MLD_NATIVE_FUNC_SUCCESS) + { + return; + } +#endif /* MLD_USE_NATIVE_FIPS202_X1_EXTRACT_BYTES */ #if defined(MLD_SYS_LITTLE_ENDIAN) uint8_t *state_ptr = (uint8_t *)state + offset; for (i = 0; i < length; i++) @@ -64,6 +71,13 @@ void mld_keccakf1600_xor_bytes(uint64_t *state, const unsigned char *data, unsigned offset, unsigned length) { unsigned i; +#if defined(MLD_USE_NATIVE_FIPS202_X1_XOR_BYTES) + if (mld_keccakf1600_xor_bytes_x1_native(state, data, offset, length) == + MLD_NATIVE_FUNC_SUCCESS) + { + return; + } +#endif /* MLD_USE_NATIVE_FIPS202_X1_XOR_BYTES */ #if defined(MLD_SYS_LITTLE_ENDIAN) uint8_t *state_ptr = (uint8_t *)state + offset; for (i = 0; i < length; i++) diff --git a/mldsa/src/fips202/native/api.h b/mldsa/src/fips202/native/api.h index 7abac85a4e..7e5dac0d9d 100644 --- a/mldsa/src/fips202/native/api.h +++ b/mldsa/src/fips202/native/api.h @@ -66,6 +66,42 @@ __contract__( ); #endif /* MLD_USE_NATIVE_FIPS202_X4 */ +/* + * Native x1 XOR bytes and extract bytes interface. + * + * These hooks let an x1 backend retain a custom internal state + * representation between absorb, permutation, and squeeze operations. + * The custom representation of the zero state must be the all-zero state. + */ + +#if defined(MLD_USE_NATIVE_FIPS202_X1_XOR_BYTES) +MLD_MUST_CHECK_RETURN_VALUE +static MLD_INLINE int mld_keccakf1600_xor_bytes_x1_native( + uint64_t *state, const unsigned char *data, unsigned offset, + unsigned length) +__contract__( + requires(0 <= offset && offset <= 25 * sizeof(uint64_t) && + 0 <= length && length <= 25 * sizeof(uint64_t) - offset) + requires(memory_no_alias(state, sizeof(uint64_t) * 25)) + requires(memory_no_alias(data, length)) + assigns(memory_slice(state, sizeof(uint64_t) * 25)) + ensures(return_value == MLD_NATIVE_FUNC_FALLBACK || return_value == MLD_NATIVE_FUNC_SUCCESS) + ensures((return_value == MLD_NATIVE_FUNC_FALLBACK) ==> array_unchanged_u64(state, 25))); +#endif /* MLD_USE_NATIVE_FIPS202_X1_XOR_BYTES */ + +#if defined(MLD_USE_NATIVE_FIPS202_X1_EXTRACT_BYTES) +MLD_MUST_CHECK_RETURN_VALUE +static MLD_INLINE int mld_keccakf1600_extract_bytes_x1_native( + uint64_t *state, unsigned char *data, unsigned offset, unsigned length) +__contract__( + requires(0 <= offset && offset <= 25 * sizeof(uint64_t) && + 0 <= length && length <= 25 * sizeof(uint64_t) - offset) + requires(memory_no_alias(state, sizeof(uint64_t) * 25)) + requires(memory_no_alias(data, length)) + assigns(memory_slice(data, length)) + ensures(return_value == MLD_NATIVE_FUNC_FALLBACK || return_value == MLD_NATIVE_FUNC_SUCCESS)); +#endif /* MLD_USE_NATIVE_FIPS202_X1_EXTRACT_BYTES */ + /* * Native x4 XOR bytes and extract bytes interface. * diff --git a/mldsa/src/fips202/native/armv81m/README.md b/mldsa/src/fips202/native/armv81m/README.md index 9c2c0d26ea..a3b17329d4 100644 --- a/mldsa/src/fips202/native/armv81m/README.md +++ b/mldsa/src/fips202/native/armv81m/README.md @@ -1,10 +1,15 @@ [//]: # (SPDX-License-Identifier: CC-BY-4.0) -# FIPS202 backend for Armv8.1-M + MVE +# FIPS202 backend for Armv8.1-M -This directory contains the source code for a FIPS202 backend targeting -the Armv8.1-M + MVE/Helium architecture. It is automatically derived from -the respective development source in [dev/fips202/armv81m](../../../../../dev/fips202/armv81m). +This directory contains the source code for the Armv8.1-M FIPS202 backend. It +combines the direct MVE/Helium x4 sources from +[dev/fips202/armv81m/src](../../../../../dev/fips202/armv81m/src) with the +SLOTHY-generated x1 sources from +[dev/fips202/armv81m_opt/src](../../../../../dev/fips202/armv81m_opt/src), +including the permutation and MVE byte XOR/extract helpers, whose clean inputs +are maintained in +[dev/fips202/armv81m_clean/src](../../../../../dev/fips202/armv81m_clean/src). **Warning:** This backend is still in active development and has not yet undergone the same level of review as the rest of the code. Use at your own risk! diff --git a/mldsa/src/fips202/native/armv81m/mve_x1.h b/mldsa/src/fips202/native/armv81m/mve_x1.h new file mode 100644 index 0000000000..200a7aed41 --- /dev/null +++ b/mldsa/src/fips202/native/armv81m/mve_x1.h @@ -0,0 +1,65 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +#ifndef MLD_FIPS202_NATIVE_ARMV81M_MVE_X1_H +#define MLD_FIPS202_NATIVE_ARMV81M_MVE_X1_H + +#define MLD_FIPS202_NATIVE_ARMV81M + +/* Part of backend API */ +#define MLD_USE_NATIVE_FIPS202_X1 +#define MLD_USE_NATIVE_FIPS202_X1_XOR_BYTES +#define MLD_USE_NATIVE_FIPS202_X1_EXTRACT_BYTES +/* Guard for assembly files */ +#define MLD_FIPS202_ARMV81M_NEED_X1 + +#if !defined(__ASSEMBLER__) +#include "../api.h" + +#define mld_keccak_f1600_x1_native_impl \ + MLD_NAMESPACE(keccak_f1600_x1_native_impl) +int mld_keccak_f1600_x1_native_impl(uint64_t *state); + +MLD_MUST_CHECK_RETURN_VALUE +static MLD_INLINE int mld_keccak_f1600_x1_native(uint64_t *state) +{ + return mld_keccak_f1600_x1_native_impl(state); +} + +#define mld_keccakf1600_xor_bytes_x1_native_impl \ + MLD_NAMESPACE(keccakf1600_xor_bytes_x1_native_impl) +int mld_keccakf1600_xor_bytes_x1_native_impl(uint64_t *state, + const uint8_t *data, + unsigned offset, unsigned length); + +MLD_MUST_CHECK_RETURN_VALUE +static MLD_INLINE int mld_keccakf1600_xor_bytes_x1_native(uint64_t *state, + const uint8_t *data, + unsigned offset, + unsigned length) +{ + return mld_keccakf1600_xor_bytes_x1_native_impl(state, data, offset, length); +} + +#define mld_keccakf1600_extract_bytes_x1_native_impl \ + MLD_NAMESPACE(keccakf1600_extract_bytes_x1_native_impl) +int mld_keccakf1600_extract_bytes_x1_native_impl(uint64_t *state, uint8_t *data, + unsigned offset, + unsigned length); + +MLD_MUST_CHECK_RETURN_VALUE +static MLD_INLINE int mld_keccakf1600_extract_bytes_x1_native(uint64_t *state, + uint8_t *data, + unsigned offset, + unsigned length) +{ + return mld_keccakf1600_extract_bytes_x1_native_impl(state, data, offset, + length); +} + +#endif /* !__ASSEMBLER__ */ + +#endif /* !MLD_FIPS202_NATIVE_ARMV81M_MVE_X1_H */ diff --git a/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.c b/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.c new file mode 100644 index 0000000000..c58846267b --- /dev/null +++ b/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.c @@ -0,0 +1,144 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +#include "../../../../common.h" + +#if defined(MLD_FIPS202_ARMV81M_NEED_X1) && \ + !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) + +#define mld_keccak_f1600_x1_armv7m_asm MLD_NAMESPACE(keccak_f1600_x1_armv7m_asm) +void mld_keccak_f1600_x1_armv7m_asm(uint64_t state[25], const uint32_t rc[49]); + +/* MVE is optional within Armv8.1-M; retain the scalar x1 path when it is not + * enabled by the compiler target. */ +#if defined(__ARM_FEATURE_MVE) +#define mld_keccak_f1600_x1_state_xor_bytes_asm \ + MLD_NAMESPACE(keccak_f1600_x1_state_xor_bytes_asm) +void mld_keccak_f1600_x1_state_xor_bytes_asm(void *state, const uint8_t *data, + unsigned offset, unsigned length); +#endif /* __ARM_FEATURE_MVE */ + +#define mld_keccak_f1600_x1_state_xor_bytes_scalar_asm \ + MLD_NAMESPACE(keccak_f1600_x1_state_xor_bytes_scalar_asm) +void mld_keccak_f1600_x1_state_xor_bytes_scalar_asm(void *state, + const uint8_t *data, + unsigned offset, + unsigned length); + +#if defined(__ARM_FEATURE_MVE) +#define mld_keccak_f1600_x1_state_extract_bytes_asm \ + MLD_NAMESPACE(keccak_f1600_x1_state_extract_bytes_asm) +void mld_keccak_f1600_x1_state_extract_bytes_asm(void *state, uint8_t *data, + unsigned offset, + unsigned length); +#endif /* __ARM_FEATURE_MVE */ + +#define mld_keccak_f1600_x1_state_extract_bytes_scalar_asm \ + MLD_NAMESPACE(keccak_f1600_x1_state_extract_bytes_scalar_asm) +void mld_keccak_f1600_x1_state_extract_bytes_scalar_asm(void *state, + uint8_t *data, + unsigned offset, + unsigned length); + +#if defined(__ARM_FEATURE_MVE) +#define MLD_KECCAK_X1_MVE_FAST_BYTES 192u +#endif + +/* The Adomnicai x1 core consumes 24 bit-interleaved round constants followed + * by a 0xff loop terminator. Keep this table private to this backend. */ +static MLD_ALIGN const uint32_t mld_keccakf1600_round_constants_x1[49] = { + 0x00000001, 0x00000000, /* RC0 */ + 0x00000000, 0x00000089, /* RC1 */ + 0x00000000, 0x8000008b, /* RC2 */ + 0x00000000, 0x80008080, /* RC3 */ + 0x00000001, 0x0000008b, /* RC4 */ + 0x00000001, 0x00008000, /* RC5 */ + 0x00000001, 0x80008088, /* RC6 */ + 0x00000001, 0x80000082, /* RC7 */ + 0x00000000, 0x0000000b, /* RC8 */ + 0x00000000, 0x0000000a, /* RC9 */ + 0x00000001, 0x00008082, /* RC10 */ + 0x00000000, 0x00008003, /* RC11 */ + 0x00000001, 0x0000808b, /* RC12 */ + 0x00000001, 0x8000000b, /* RC13 */ + 0x00000001, 0x8000008a, /* RC14 */ + 0x00000001, 0x80000081, /* RC15 */ + 0x00000000, 0x80000081, /* RC16 */ + 0x00000000, 0x80000008, /* RC17 */ + 0x00000000, 0x00000083, /* RC18 */ + 0x00000000, 0x80008003, /* RC19 */ + 0x00000001, 0x80008088, /* RC20 */ + 0x00000000, 0x80000088, /* RC21 */ + 0x00000001, 0x00008000, /* RC22 */ + 0x00000000, 0x80008082, /* RC23 */ + 0x000000ff, /* loop terminator */ +}; + +#define mld_keccak_f1600_x1_native_impl \ + MLD_NAMESPACE(keccak_f1600_x1_native_impl) +int mld_keccak_f1600_x1_native_impl(uint64_t *state) +{ + /* The x1 native xor/extract hooks keep state bit-interleaved in-place. */ + mld_keccak_f1600_x1_armv7m_asm(state, mld_keccakf1600_round_constants_x1); + return MLD_NATIVE_FUNC_SUCCESS; +} + +#define mld_keccakf1600_xor_bytes_x1_native_impl \ + MLD_NAMESPACE(keccakf1600_xor_bytes_x1_native_impl) +int mld_keccakf1600_xor_bytes_x1_native_impl(uint64_t *state, + const uint8_t *data, + unsigned offset, unsigned length) +{ +#if defined(__ARM_FEATURE_MVE) + if (offset <= MLD_KECCAK_X1_MVE_FAST_BYTES && + length <= MLD_KECCAK_X1_MVE_FAST_BYTES - offset) + { + mld_keccak_f1600_x1_state_xor_bytes_asm(state, data, offset, length); + return MLD_NATIVE_FUNC_SUCCESS; + } +#endif /* __ARM_FEATURE_MVE */ + mld_keccak_f1600_x1_state_xor_bytes_scalar_asm(state, data, offset, length); + return MLD_NATIVE_FUNC_SUCCESS; +} + +#define mld_keccakf1600_extract_bytes_x1_native_impl \ + MLD_NAMESPACE(keccakf1600_extract_bytes_x1_native_impl) +int mld_keccakf1600_extract_bytes_x1_native_impl(uint64_t *state, uint8_t *data, + unsigned offset, + unsigned length) +{ +#if defined(__ARM_FEATURE_MVE) + if (offset <= MLD_KECCAK_X1_MVE_FAST_BYTES && + length <= MLD_KECCAK_X1_MVE_FAST_BYTES - offset) + { + mld_keccak_f1600_x1_state_extract_bytes_asm(state, data, offset, length); + return MLD_NATIVE_FUNC_SUCCESS; + } +#endif /* __ARM_FEATURE_MVE */ + mld_keccak_f1600_x1_state_extract_bytes_scalar_asm(state, data, offset, + length); + return MLD_NATIVE_FUNC_SUCCESS; +} + +#else /* MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */ + +MLD_EMPTY_CU(keccak_f1600_x1_armv7m) + +#endif /* !(MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED) \ + */ + +/* To facilitate single-compilation-unit (SCU) builds, undefine all macros. + * Don't modify by hand -- this is auto-generated by scripts/autogen. */ +#undef mld_keccak_f1600_x1_armv7m_asm +#undef mld_keccak_f1600_x1_state_xor_bytes_asm +#undef mld_keccak_f1600_x1_state_xor_bytes_scalar_asm +#undef mld_keccak_f1600_x1_state_extract_bytes_asm +#undef mld_keccak_f1600_x1_state_extract_bytes_scalar_asm +#undef MLD_KECCAK_X1_MVE_FAST_BYTES +/* Some macros are kept because they are also defined in a header. */ +/* Keep: mld_keccak_f1600_x1_native_impl (mve_x1.h) */ +/* Keep: mld_keccakf1600_xor_bytes_x1_native_impl (mve_x1.h) */ +/* Keep: mld_keccakf1600_extract_bytes_x1_native_impl (mve_x1.h) */ diff --git a/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m_opt_m55.S b/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m_opt_m55.S new file mode 100644 index 0000000000..3fb5638fb7 --- /dev/null +++ b/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m_opt_m55.S @@ -0,0 +1,1586 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* References + * ========== + * + * - [ADOMNICAI23] + * An update on Keccak performance on ARMv7-M + * Alexandre Adomnicai + * https://eprint.iacr.org/2023/773 + * + * - [SLOTHYM7] + * Enabling Microarchitectural Agility: Taking ML-KEM and ML-DSA from + * Cortex-M4 to M7 with SLOTHY + * Abdulrahman, Kannwischer, Lim + * https://eprint.iacr.org/2025/366 + * + * - [XKCP] + * eXtended Keccak Code Package + * Bertoni, Daemen, Peeters, Van Assche, Van Keer + * https://github.com/XKCP/XKCP + */ + +/* + * XKCP-derived portions carry the following CC0-1.0 dedication: + * + * Implementation by the Keccak, Keyak and Ketje Teams, namely, Guido Bertoni, + * Joan Daemen, Michaël Peeters, Gilles Van Assche and Ronny Van Keer, hereby + * denoted as "the implementer". + * Additional optimizations by Alexandre Adomnicai. + * + * To the extent possible under law, the implementer has waived all copyright + * and related or neighboring rights to the source code in this file. + * https://creativecommons.org/publicdomain/zero/1.0/ + * + * The SLOTHY-derived portions are distributed under the MIT license: + * Copyright (c) 2022 Arm Limited + * Copyright (c) 2022 Hanno Becker + * Copyright (c) 2023 Amin Abdulrahman, Matthias Kannwischer + * See LICENSE for the full MIT license terms. + */ + +/* + * This file is derived from the SLOTHY 0.2.2 source + * examples/naive/armv7m/keccak/keccakf1600_adomnicai_m4.s. + * Its XKCP-derived portions are dedicated to the public domain under CC0-1.0; + * its SLOTHY-derived portions are distributed under the MIT license. + * + * This is the selected Armv8.1-M M55 schedule. It is generated from + * keccak_f1600_x1_armv81m.S and uses paired theta parity loads to fetch a + * lane's even and odd 32-bit components together with LDRD. + */ + +/*yaml + Name: keccak_f1600_x1_armv7m_asm + Description: Armv8.1-M x1 Keccak-f[1600] permutation using the Adomnicai/XKCP bit-interleaved Armv7-M representation + Signature: void mld_keccak_f1600_x1_armv7m_asm(uint64_t state[25], const uint32_t rc[49]) + ABI: + Architecture: armv81m + CallingConvention: AAPCS32 + Features: [] + r0: + type: buffer + size_bytes: 200 + permissions: read/write + c_parameter: uint64_t state[25] + description: 8-byte-aligned bit-interleaved x1 state containing even/odd 32-bit halves for each Keccak lane + r1: + type: buffer + size_bytes: 196 + permissions: read + c_parameter: const uint32_t rc[49] + description: 24 bit-interleaved round constants followed by the 0xff loop terminator + test_bytes: + 192: 0xff + 193: 0x00 + 194: 0x00 + 195: 0x00 + Stack: + bytes: 64 + description: register preservation (40) + scalar scratch/intermediate state (24); no MVE/Q-register scratch +*/ + +/* + * AAPCS32 contract: preserves r4-r11 and sp; d8-d15 are not accessed. + * The caller-saved r0-r3, r12, and APSR condition flags may be clobbered. + * The 200-byte state buffer must be 8-byte aligned and is modified; the + * round-constant buffer is read-only. + */ + +/* + * This file is derived from the public domain implementation @[XKCP]. + * Optimizations for Armv7-M are described in @[ADOMNICAI23]. + * The clean round body is adapted from SLOTHY's MIT-licensed + * examples/naive/armv7m/keccak/keccakf1600_adomnicai_m7.s. + * Further optimizations using SLOTHY are described in @[SLOTHYM7]. + */ +/* WARNING: This implementation requires a little-endian Armv7-M or Armv8-M Mainline CPU. */ + +#include "../../../../common.h" +#if defined(MLD_FIPS202_ARMV81M_NEED_X1) && !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) + +/* + * WARNING: This file is auto-derived from the mldsa-native source file + * dev/fips202/armv81m_opt/src/keccak_f1600_x1_armv7m_opt_m55.S using scripts/simpasm. Do not modify it directly. + */ + +.thumb +.syntax unified + +.text +.balign 4 +.global MLD_ASM_NAMESPACE(keccak_f1600_x1_armv7m_asm) +MLD_ASM_FN_SYMBOL(keccak_f1600_x1_armv7m_asm) + + .cfi_startproc + push.w {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr} + .cfi_adjust_cfa_offset 0x28 + .cfi_rel_offset r4, 0x0 + .cfi_rel_offset r5, 0x4 + .cfi_rel_offset r6, 0x8 + .cfi_rel_offset r7, 0xc + .cfi_rel_offset r8, 0x10 + .cfi_rel_offset r9, 0x14 + .cfi_rel_offset r10, 0x18 + .cfi_rel_offset r11, 0x1c + .cfi_rel_offset lr, 0x24 + sub sp, #0x18 + .cfi_adjust_cfa_offset 0x18 + str r1, [sp, #0x14] + +Lmld_keccak_f1600_x1_armv7m_asm_slothy_start: + ldrd r6, r5, [r0, #72] + ldrd r4, r8, [r0, #32] + ldrd r1, lr, [r0, #112] + eor.w r8, r8, r5 + ldrd r12, r5, [r0, #152] + eor.w r8, r8, lr + ldrd r9, lr, [r0, #192] + eor.w r5, r8, r5 + eor.w r8, r4, r6 + eor.w r7, r5, lr + eor.w r10, r8, r1 + ldrd lr, r1, [r0, #48] + ldrd r5, r8, [r0, #8] + eor.w r6, r10, r12 + eor.w r4, r5, lr + ldrd r12, lr, [r0, #88] + eor.w r8, r8, r1 + ldrd r1, r5, [r0, #128] + eor.w r8, r8, lr + ldrd r10, lr, [r0, #168] + eor.w r5, r8, r5 + eor.w r8, r4, r12 + eor.w r2, r5, lr + eor.w r6, r6, r9 + eor.w r5, r8, r1 + eor.w r8, r6, r2, ror #31 + eor.w r11, r5, r10 + str.w r8, [sp] + eor.w r10, r7, r11 + ldrd lr, r1, [r0, #56] + ldrd r8, r5, [r0, #16] + str.w r10, [sp, #0x4] + eor.w lr, r8, lr + ldrd r8, r4, [r0, #96] + eor.w r12, r5, r1 + ldrd r5, r10, [r0, #136] + eor.w r8, lr, r8 + ldrd r1, lr, [r0, #176] + eor.w r5, r8, r5 + eor.w r8, r12, r4 + eor.w r1, r5, r1 + eor.w r8, r8, r10 + eor.w r9, r1, r7, ror #31 + eor.w r5, r8, lr + str.w r9, [sp, #0x8] + eor.w r8, r6, r5 + str.w r8, [sp, #0xc] + ldrd r12, r4, [r0, #64] + ldrd lr, r8, [r0, #24] + ldrd r10, r6, [r0, #104] + eor.w lr, lr, r12 + eor.w r8, r8, r4 + eor.w r4, lr, r10 + ldrd r12, r10, [r0, #144] + eor.w r8, r8, r6 + ldrd r7, lr, [r0, #184] + eor.w r12, r4, r12 + eor.w r8, r8, r10 + eor.w r3, r12, r7 + eor.w r4, r8, lr + ldrd r10, r6, [r0, #40] + ldrd lr, r8, [r0] + eor.w r12, r11, r4, ror #31 + eor.w lr, lr, r10 + eor.w r8, r8, r6 + ldrd r10, r11, [r0, #80] + eor.w r2, r2, r3 + str.w r12, [sp, #0x10] + eor.w r7, lr, r10 + eor.w r6, r8, r11 + ldrd r10, r11, [r0, #120] + ldrd lr, r12, [r0, #160] + ldr.w r8, [r0, #0x54] + eor.w r7, r7, r10 + eor.w r6, r6, r11 + eor.w r10, r7, lr + eor.w r7, r6, r12 + eor.w lr, r4, r10 + ldr r6, [r0, #0x18] + eor.w r11, r7, r1 + eor.w r12, r3, r7, ror #31 + eor.w r10, r10, r5, ror #31 + ldr.w r3, [r0, #0xa4] + ldr.w r4, [r0, #0xb4] + ldr r1, [sp, #0x4] + eor.w r5, r1, r8 + ldr.w r7, [r0, #0x84] + eor.w r8, r11, r7 + eor.w r1, r1, r3 + eor.w r3, r2, r4 + bic.w r7, r3, r8, ror #8 + eor.w r4, r9, r6 + bic.w r6, r4, r3, ror #15 + eor.w r7, r7, r5, ror #29 + eor.w r6, r6, r8, ror #23 + str.w r7, [r0, #0xb4] + bic.w r8, r8, r5, ror #21 + ldr r7, [r0, #0x48] + eor.w r7, r12, r7 + str r6, [r0, #0x18] + bic.w r5, r5, r7, ror #24 + eor.w r8, r8, r7, ror #13 + ldr r6, [r0, #0x3c] + str.w r8, [r0, #0x84] + bic.w r8, r7, r4, ror #28 + ldr.w r7, [r0, #0x9c] + eor.w r8, r8, r3, ror #11 + eor.w r7, lr, r7 + eor.w r3, r5, r4, ror #20 + eor.w r4, r2, r6 + str r3, [r0, #0x54] + str.w r8, [r0, #0x48] + ldr.w r8, [r0, #0x68] + eor.w r8, r9, r8 + ldr r5, [r0, #0x8] + bic.w r6, r7, r8, ror #24 + eor.w r5, r10, r5 + eor.w r6, r6, r4, ror #1 + bic.w r3, r5, r1, ror #23 + str r6, [r0, #0x8] + eor.w r3, r3, r7, ror #28 + bic.w r6, r4, r5, ror #3 + str r3, [r0, #0x68] + eor.w r3, r6, r1, ror #26 + ldr.w r6, [r0, #0x8c] + bic.w r7, r1, r7, ror #5 + bic.w r4, r8, r4, ror #9 + str.w r3, [r0, #0x9c] + eor.w r5, r4, r5, ror #12 + eor.w r7, r7, r8, ror #29 + ldr.w r8, [sp] + ldr.w r1, [r0, #0xb8] + ldr r3, [r0, #0x24] + ldr r4, [r0, #0x28] + str.w r5, [r0, #0xa4] + ldr r5, [r0, #0x58] + eor.w r4, r8, r4 + eor.w r5, r10, r5 + eor.w r3, lr, r3 + str r7, [r0, #0x3c] + eor.w r6, r2, r6 + eor.w r7, r9, r1 + bic.w r1, r4, r3, ror #4 + eor.w r1, r1, r7, ror #22 + str r1, [r0, #0x24] + bic.w r1, r6, r5, ror #3 + eor.w r1, r1, r4, ror #22 + bic.w r4, r5, r4, ror #19 + str r1, [r0, #0x58] + eor.w r1, r4, r3, ror #23 + ldr r4, [r0, #0x70] + str r1, [r0, #0x28] + bic.w r1, r3, r7, ror #18 + eor.w r3, r12, r4 + bic.w r7, r7, r6, ror #20 + ldr r4, [r0, #0x40] + eor.w r5, r7, r5, ror #23 + ldr r7, [r0, #0x78] + eor.w r4, r9, r4 + str.w r5, [r0, #0x8c] + eor.w r5, r1, r6, ror #6 + eor.w r1, r8, r7 + bic.w r7, r1, r3, ror #1 + ldr.w r9, [r0, #0xac] + eor.w r7, r7, r4, ror #25 + ldr r6, [r0, #0x14] + eor.w r6, r2, r6 + str.w r7, [r0, #0xac] + bic.w r7, r3, r4, ror #24 + str.w r5, [r0, #0xb8] + eor.w r7, r7, r6, ror #20 + eor.w r9, r11, r9 + str r7, [r0, #0x78] + bic.w r5, r6, r9, ror #30 + bic.w r7, r9, r1, ror #13 + eor.w r5, r5, r1, ror #11 + bic.w r1, r4, r6, ror #28 + ldr r6, [sp, #0x14] + eor.w r9, r1, r9, ror #26 + eor.w r3, r7, r3, ror #14 + ldr.w r7, [r0, #0xc0] + str r3, [r0, #0x14] + str.w r9, [r0, #0x70] + eor.w r1, r12, r7 + ldr r7, [r0, #0x64] + eor.w r2, r2, r7 + ldr.w r9, [sp, #0xc] + ldr r7, [r0] + str r5, [r0, #0x40] + ldr.w r5, [r0, #0x94] + eor.w r4, r9, r5 + eor.w r7, r8, r7 + bic.w r3, r1, r4, ror #28 + bic.w r5, r7, r1, ror #25 + eor.w r3, r3, r2, ror #17 + eor.w r5, r5, r4, ror #21 + str r3, [r0, #0x64] + bic.w r4, r4, r2, ror #21 + ldr r3, [r0, #0x30] + eor.w r3, r10, r3 + str.w r5, [r0, #0x94] + eor.w r4, r4, r3, ror #21 + bic.w r5, r3, r7, ror #22 + str r4, [r0, #0x30] + bic.w r2, r2, r3 + ldr r6, [r6] + eor.w r5, r5, r1, ror #15 + eor.w r3, r7, r2, ror #10 + str.w r5, [r0, #0xc0] + eor.w r1, r6, r3 + ldr r7, [r0, #0xc] + ldr r2, [sp, #0x10] + ldr r5, [r0, #0x38] + ldr r4, [r0, #0x6c] + eor.w r3, r11, r7 + ldr.w r7, [r0, #0x98] + eor.w r5, r2, r5 + str r1, [r0] + eor.w r1, r9, r4 + bic.w r6, r1, r5, ror #10 + ldr.w r4, [r0, #0xa0] + eor.w r6, r6, r3, ror #12 + eor.w r4, r8, r4 + str.w r6, [r0, #0xa0] + eor.w r7, r12, r7 + bic.w r6, r3, r4, ror #24 + bic.w r3, r5, r3, ror #2 + eor.w r6, r6, r7, ror #29 + eor.w r3, r3, r4, ror #26 + bic.w r4, r4, r7, ror #5 + str r6, [r0, #0x6c] + str.w r3, [r0, #0x98] + bic.w r3, r7, r1, ror #23 + ldr r6, [r0, #0x50] + eor.w r8, r8, r6 + eor.w r1, r4, r1, ror #28 + eor.w r3, r3, r5, ror #1 + ldr r4, [r0, #0x1c] + str r1, [r0, #0x38] + str r3, [r0, #0xc] + ldr.w r5, [r0, #0xb0] + eor.w r7, r2, r5 + ldr.w r5, [r0, #0x80] + eor.w r5, r10, r5 + ldr r1, [r0, #0x4c] + bic.w r3, r7, r5, ror #8 + eor.w r6, lr, r1 + eor.w r3, r3, r8, ror #29 + eor.w r1, r9, r4 + bic.w r4, r5, r8, ror #21 + bic.w r8, r8, r6, ror #23 + eor.w r4, r4, r6, ror #12 + eor.w r8, r8, r1, ror #19 + str.w r4, [r0, #0x80] + str.w r8, [r0, #0x50] + bic.w r8, r1, r7, ror #16 + str.w r3, [r0, #0xb0] + ldr r3, [r0, #0x20] + eor.w r3, r12, r3 + eor.w r5, r8, r5, ror #24 + ldr.w r12, [r0, #0x5c] + bic.w r1, r6, r1, ror #28 + eor.w r12, r11, r12 + eor.w r1, r1, r7, ror #12 + ldr.w r8, [r0, #0xbc] + ldr.w r6, [r0, #0x88] + str r1, [r0, #0x4c] + eor.w r7, r9, r8 + eor.w r6, r2, r6 + bic.w r1, r3, r7, ror #17 + str r5, [r0, #0x1c] + eor.w r1, r1, r6, ror #6 + bic.w r8, r7, r6, ror #21 + bic.w r6, r6, r12, ror #2 + ldr r5, [r0, #0x2c] + eor.w r4, r8, r12, ror #23 + ldr.w r8, [sp, #0x4] + str.w r4, [r0, #0x88] + eor.w r4, r8, r5 + ldr r5, [r0, #0x74] + eor.w r5, lr, r5 + str.w r1, [r0, #0xbc] + bic.w r1, r12, r4, ror #19 + eor.w r12, r6, r4, ror #21 + eor.w r6, r1, r3, ror #24 + str.w r12, [r0, #0x5c] + bic.w r1, r4, r3, ror #5 + str r6, [r0, #0x2c] + eor.w r7, r1, r7, ror #22 + ldr r6, [r0, #0x10] + ldr r1, [r0, #0x44] + ldr.w r12, [r0, #0x7c] + ldr.w r4, [r0, #0xa8] + str r7, [r0, #0x20] + eor.w r3, r2, r6 + eor.w r7, r9, r1 + eor.w r6, r8, r12 + bic.w r1, r5, r7, ror #24 + eor.w r4, r10, r4 + eor.w r12, r1, r3, ror #21 + bic.w r1, r6, r5, ror #1 + str.w r12, [r0, #0x7c] + eor.w r1, r1, r7, ror #25 + bic.w r10, r4, r6, ror #12 + str.w r1, [r0, #0xa8] + eor.w r10, r10, r5, ror #13 + bic.w r1, r3, r4, ror #30 + str.w r10, [r0, #0x10] + eor.w r1, r1, r6, ror #10 + bic.w r5, r7, r3, ror #29 + str r1, [r0, #0x44] + eor.w r7, r5, r4, ror #27 + ldr r6, [sp, #0x8] + ldr r4, [r0, #0x4] + ldr.w r12, [r0, #0x34] + ldr.w r10, [r0, #0x60] + ldr.w r1, [r0, #0x90] + ldr.w r5, [r0, #0xc4] + str r7, [r0, #0x74] + eor.w r4, r8, r4 + eor.w r12, r11, r12 + eor.w r10, r2, r10 + eor.w r1, r6, r1 + eor.w lr, lr, r5 + bic.w r5, r1, r10, ror #21 + bic.w r8, lr, r1, ror #29 + eor.w r5, r5, r12, ror #20 + eor.w r8, r8, r10, ror #18 + str r5, [r0, #0x34] + str.w r8, [r0, #0x60] + bic.w r5, r4, lr, ror #25 + bic.w r8, r12, r4, ror #22 + eor.w r5, r5, r1, ror #22 + eor.w r8, r8, lr, ror #15 + str.w r5, [r0, #0x90] + str.w r8, [r0, #0xc4] + bic.w r5, r10, r12, ror #31 + ldr.w r8, [sp, #0x14] + ldr.w r7, [r8, #0x4] + eor.w r6, r4, r5, ror #11 + ldrd lr, r4, [r0, #72] + ldrd r5, r8, [r0, #192] + ldrd r10, r1, [r0, #152] + eor.w r5, r5, lr, ror #12 + eor.w r8, r8, r4, ror #12 + ldrd r12, lr, [r0, #32] + eor.w r5, r5, r10, ror #19 + eor.w r8, r8, r1, ror #19 + eor.w r10, r5, lr, ror #4 + eor.w lr, r8, r12, ror #4 + ldrd r5, r1, [r0, #112] + eor.w r8, r7, r6 + str.w r8, [r0, #0x4] + eor.w r3, r10, r1, ror #26 + eor.w r4, lr, r5, ror #27 + ldrd r10, r1, [r0, #128] + ldrd r9, r12, [r0, #48] + ldrd r6, r8, [r0, #8] + eor.w r5, r9, r1, ror #20 + eor.w lr, r12, r10, ror #20 + eor.w r8, r5, r8, ror #7 + ldrd r12, r10, [r0, #88] + eor.w r5, lr, r6, ror #6 + ldrd r1, lr, [r0, #168] + eor.w r5, r5, r10, ror #3 + eor.w r8, r8, r12, ror #3 + eor.w r2, r5, lr, ror #22 + eor.w r12, r8, r1, ror #22 + ror.w r9, r3, #0xa + eor.w r8, r9, r2, ror #21 + ror.w r7, r12, #0x15 + str.w r8, [sp] + eor.w r11, r7, r4, ror #10 + ldrd r12, r5, [r0, #176] + ldrd r10, r8, [r0, #96] + ldrd r1, lr, [r0, #56] + eor.w r5, r8, r5, ror #8 + eor.w r8, r10, r12, ror #9 + eor.w r6, r5, r1, ror #30 + ldrd r12, r10, [r0, #136] + eor.w r8, r8, lr, ror #30 + ldrd r1, lr, [r0, #16] + eor.w r5, r8, r12, ror #11 + eor.w r8, r6, r10, ror #11 + eor.w r3, r5, lr, ror #6 + str.w r11, [sp, #0x4] + eor.w r5, r8, r1, ror #6 + eor.w r8, r9, r3, ror #25 + ror.w r11, r5, #0x19 + str.w r8, [sp, #0xc] + eor.w r9, r11, r4, ror #9 + ldrd r5, r12, [r0, #24] + ldrd r10, r8, [r0, #144] + ldrd r1, lr, [r0, #104] + eor.w r5, r8, r5, ror #18 + eor.w r8, r10, r12, ror #18 + eor.w r12, r5, lr, ror #31 + ldrd r10, r5, [r0, #184] + eor.w r8, r8, r1 + ldrd r1, lr, [r0, #64] + eor.w r5, r8, r5, ror #19 + eor.w r8, r12, r10, ror #18 + eor.w r4, r5, r1, ror #1 + str.w r9, [sp, #0x8] + eor.w r6, r8, lr, ror #1 + eor.w r5, r7, r4, ror #31 + eor.w r2, r6, r2, ror #22 + str r5, [sp, #0x10] + ldrd r10, lr, [r0, #80] + ldrd r5, r8, [r0] + ldrd r1, r7, [r0, #160] + eor.w lr, r5, lr, ror #30 + eor.w r8, r8, r10, ror #31 + eor.w r12, lr, r1, ror #19 + ldrd r5, r10, [r0, #40] + eor.w r8, r8, r7, ror #20 + ldrd r1, lr, [r0, #120] + eor.w r5, r12, r5, ror #27 + eor.w r8, r8, r10, ror #27 + eor.w r5, r5, lr, ror #12 + eor.w r8, r8, r1, ror #13 + eor.w r10, r5, r3, ror #24 + ldr.w r12, [r0, #0x6c] + eor.w r11, r8, r11 + eor.w r7, r9, r12, ror #31 + eor.w r12, r6, r8, ror #31 + ldr r6, [r0, #0x20] + ldr.w r8, [r0, #0xb0] + ldr r3, [r0, #0x30] + eor.w lr, r4, r5 + eor.w r1, lr, r6, ror #14 + eor.w r6, r2, r8, ror #2 + bic.w r8, r1, r7, ror #24 + eor.w r3, r10, r3, ror #21 + bic.w r4, r7, r6, ror #9 + eor.w r8, r8, r6, ror #1 + eor.w r4, r4, r3, ror #12 + ldr r5, [r0, #0x78] + str r4, [r0, #0x78] + ldr r4, [sp, #0x4] + eor.w r5, r4, r5, ror #13 + str.w r8, [r0, #0x30] + bic.w r8, r6, r3, ror #3 + bic.w r3, r3, r5, ror #23 + ldr.w r6, [r0, #0x94] + eor.w r3, r3, r1, ror #28 + bic.w r1, r5, r1, ror #5 + str r3, [r0, #0x6c] + eor.w r5, r8, r5, ror #26 + eor.w r1, r1, r7, ror #29 + str r5, [r0, #0x20] + ldr.w r8, [r0, #0x48] + str.w r1, [r0, #0xb0] + ldr r7, [r0, #0x14] + ldr.w r1, [r0, #0xa4] + eor.w r3, r2, r7, ror #31 + eor.w r7, r12, r8, ror #22 + eor.w r4, r4, r1, ror #20 + eor.w r1, r9, r6 + ldr r5, [r0, #0x5c] + bic.w r8, r4, r7, ror #24 + eor.w r6, r11, r5, ror #25 + eor.w r5, r8, r1, ror #20 + bic.w r8, r6, r4, ror #21 + str.w r5, [r0, #0xa4] + bic.w r5, r7, r1, ror #28 + eor.w r8, r8, r7, ror #13 + eor.w r5, r5, r3, ror #11 + str.w r8, [r0, #0x5c] + bic.w r8, r3, r6, ror #8 + ldr.w r7, [r0, #0xc4] + eor.w r8, r8, r4, ror #29 + str r5, [r0, #0x48] + str.w r8, [r0, #0x14] + bic.w r1, r1, r3, ror #15 + ldr.w r5, [r0, #0x88] + eor.w r8, r1, r6, ror #23 + eor.w r6, r2, r5, ror #4 + ldr r4, [r0, #0xc] + str.w r8, [r0, #0x94] + ldr r1, [r0, #0x54] + eor.w r5, r10, r4, ror #28 + ldr.w r8, [sp] + eor.w r4, r8, r1, ror #30 + bic.w r1, r6, r5, ror #3 + ldr r3, [r0, #0x44] + eor.w r1, r1, r4, ror #22 + eor.w r3, r9, r3, ror #1 + str r1, [r0, #0xc] + bic.w r1, r3, r6, ror #20 + eor.w r7, lr, r7, ror #10 + eor.w r1, r1, r5, ror #23 + bic.w r5, r5, r4, ror #19 + bic.w r4, r4, r7, ror #4 + str.w r1, [r0, #0x88] + bic.w r1, r7, r3, ror #18 + eor.w r4, r4, r3, ror #22 + eor.w r5, r5, r7, ror #23 + ldr r3, [r0, #0x18] + eor.w r1, r1, r6, ror #6 + eor.w r3, r9, r3, ror #18 + str r1, [r0, #0x44] + ldr.w r9, [r0, #0xac] + ldr r7, [r0, #0x60] + ldr r6, [r0, #0x3c] + str.w r4, [r0, #0xc4] + eor.w r4, r2, r6, ror #23 + eor.w r6, r2, r7, ror #25 + eor.w r1, r11, r9, ror #12 + ldr.w r9, [r0, #0x28] + str r5, [r0, #0x54] + eor.w r7, r8, r9, ror #27 + bic.w r2, r3, r6, ror #28 + ldr.w r5, [r0, #0x98] + eor.w r9, r2, r1, ror #26 + bic.w r2, r1, r7, ror #13 + bic.w r1, r6, r1, ror #30 + str.w r9, [r0, #0x98] + eor.w r9, r12, r5, ror #29 + eor.w r1, r1, r7, ror #11 + bic.w r5, r9, r3, ror #24 + str r1, [r0, #0x18] + eor.w r2, r2, r9, ror #14 + bic.w r9, r7, r9, ror #1 + eor.w r5, r5, r6, ror #20 + str r2, [r0, #0x60] + str r5, [r0, #0x28] + ldr.w r6, [r0, #0x84] + ldr r2, [r0, #0x74] + eor.w r7, r10, r6, ror #9 + eor.w r2, r12, r2, ror #4 + eor.w r6, r9, r3, ror #25 + ldr r5, [r0] + str.w r6, [r0, #0xac] + eor.w r9, r8, r5 + bic.w r3, r4, r7 + bic.w r1, r9, r2, ror #25 + bic.w r5, r7, r9, ror #22 + eor.w r3, r9, r3, ror #10 + ldr r6, [sp, #0x14] + ldr r6, [r6, #0x8] + eor.w r6, r6, r3 + str r6, [r0] + ldr.w r3, [r0, #0xbc] + ldr.w r9, [sp, #0xc] + eor.w r3, r9, r3, ror #19 + eor.w r5, r5, r2, ror #15 + bic.w r6, r3, r4, ror #21 + str r5, [r0, #0x74] + eor.w r7, r6, r7, ror #21 + ldr r6, [r0, #0x4c] + eor.w r1, r1, r3, ror #21 + bic.w r3, r2, r3, ror #28 + str.w r1, [r0, #0xbc] + str.w r7, [r0, #0x84] + eor.w r1, r3, r4, ror #17 + ldr r2, [sp, #0x10] + eor.w r4, lr, r6, ror #22 + str r1, [r0, #0x3c] + ldr.w r3, [r0, #0x90] + ldr.w r6, [r0, #0xa0] + ldr r7, [r0, #0x58] + eor.w r5, r8, r6, ror #19 + eor.w r6, r10, r7, ror #24 + ldr r7, [r0, #0x10] + bic.w r1, r6, r5, ror #21 + eor.w r3, r9, r3 + eor.w r1, r1, r4, ror #12 + eor.w r7, r2, r7, ror #31 + str r1, [r0, #0x58] + bic.w r1, r5, r4, ror #23 + bic.w r4, r4, r3, ror #28 + eor.w r1, r1, r3, ror #19 + bic.w r3, r3, r7, ror #16 + str.w r1, [r0, #0xa0] + eor.w r1, r4, r7, ror #12 + ldr r4, [r0, #0x7c] + str r1, [r0, #0x4c] + ldr r1, [r0, #0x24] + eor.w r8, r8, r4, ror #12 + eor.w r1, r12, r1, ror #14 + eor.w r3, r3, r6, ror #24 + bic.w r6, r7, r6, ror #8 + ldr r4, [r0, #0x68] + eor.w r6, r6, r5, ror #29 + bic.w r5, r8, r1, ror #5 + ldr r7, [r0, #0x34] + eor.w r4, r9, r4 + str.w r3, [r0, #0x90] + eor.w r3, r5, r4, ror #28 + ldr.w r5, [r0, #0xb4] + str.w r3, [r0, #0xb4] + str r6, [r0, #0x10] + eor.w r3, r11, r7, ror #22 + eor.w r7, r2, r5, ror #1 + bic.w r5, r1, r4, ror #23 + bic.w r6, r7, r3, ror #2 + bic.w r4, r4, r7, ror #10 + eor.w r5, r5, r7, ror #1 + eor.w r6, r6, r8, ror #26 + str r5, [r0, #0x34] + eor.w r4, r4, r3, ror #12 + ldr.w r5, [r0, #0x8c] + str r4, [r0, #0x7c] + eor.w r4, r2, r5, ror #4 + str r6, [r0, #0x24] + ldr.w r6, [r0, #0xc0] + ldr r5, [r0, #0x8] + eor.w r6, r12, r6, ror #10 + eor.w r7, r11, r5, ror #28 + bic.w r5, r3, r8, ror #24 + ldr.w r8, [sp, #0x4] + ldr.w r12, [r0, #0x50] + eor.w r5, r5, r1, ror #29 + eor.w r3, r8, r12, ror #31 + str r5, [r0, #0x68] + ldr r5, [r0, #0x40] + bic.w r1, r7, r3, ror #19 + eor.w r5, r9, r5, ror #1 + eor.w r12, r1, r6, ror #24 + bic.w r1, r5, r4, ror #21 + str.w r12, [r0, #0x50] + eor.w r12, r1, r7, ror #23 + bic.w r1, r3, r6, ror #5 + bic.w r6, r6, r5, ror #17 + str.w r12, [r0, #0x8c] + eor.w r1, r1, r5, ror #22 + eor.w r5, r6, r4, ror #6 + ldr r6, [r0, #0x2c] + ldr.w r12, [r0, #0x9c] + str r5, [r0, #0x40] + bic.w r5, r4, r7, ror #2 + ldr.w r7, [r0, #0xa8] + ldr r4, [r0, #0x64] + eor.w r5, r5, r3, ror #21 + str.w r1, [r0, #0xc0] + str r5, [r0, #0x8] + ldr r1, [r0, #0x1c] + eor.w r3, r2, r4, ror #25 + eor.w r4, r9, r1, ror #18 + eor.w r5, lr, r12, ror #29 + eor.w r9, r8, r6, ror #27 + bic.w r1, r5, r4, ror #24 + bic.w r6, r9, r5, ror #1 + eor.w r1, r1, r3, ror #21 + eor.w r12, r10, r7, ror #11 + str r1, [r0, #0x2c] + bic.w r1, r12, r9, ror #12 + eor.w r10, r6, r4, ror #25 + eor.w r1, r1, r5, ror #13 + str.w r10, [r0, #0xa8] + bic.w r5, r3, r12, ror #30 + str r1, [r0, #0x64] + eor.w r1, r5, r9, ror #10 + bic.w r5, r4, r3, ror #29 + str r1, [r0, #0x1c] + eor.w r6, r5, r12, ror #27 + ldr r4, [sp, #0x8] + ldr.w r12, [r0, #0x4] + ldr.w r9, [r0, #0x80] + ldr.w r10, [r0, #0x38] + ldr.w r1, [r0, #0xb8] + ldr r5, [r0, #0x70] + str.w r6, [r0, #0x9c] + eor.w r6, r8, r12 + eor.w r12, r2, r10, ror #23 + eor.w r1, r4, r1, ror #18 + eor.w r10, r11, r9, ror #10 + bic.w r8, r1, r12, ror #21 + eor.w lr, lr, r5, ror #5 + eor.w r5, r8, r10, ror #20 + bic.w r8, lr, r1, ror #29 + str.w r5, [r0, #0x80] + eor.w r8, r8, r12, ror #18 + bic.w r5, r6, lr, ror #25 + str.w r8, [r0, #0x38] + eor.w r4, r5, r1, ror #22 + bic.w r8, r10, r6, ror #22 + str.w r4, [r0, #0xb8] + eor.w r8, r8, lr, ror #15 + bic.w r5, r12, r10, ror #31 + str.w r8, [r0, #0x70] + ldr.w r8, [sp, #0x14] + eor.w r5, r6, r5, ror #11 + ldr.w r8, [r8, #0xc] + eor.w r8, r8, r5 + str.w r8, [r0, #0x4] + ldrd r10, r1, [r0, #72] + ldrd r5, r8, [r0, #112] + ldrd r12, lr, [r0, #32] + eor.w r10, r8, r10, ror #12 + eor.w r8, r5, r1, ror #12 + ldrd r1, r5, [r0, #192] + eor.w lr, r10, lr, ror #19 + eor.w r8, r8, r12, ror #19 + eor.w r11, lr, r5, ror #4 + eor.w r6, r8, r1, ror #4 + ldrd lr, r1, [r0, #88] + ldrd r5, r8, [r0, #128] + ldrd r10, r4, [r0, #48] + eor.w lr, r5, lr, ror #20 + eor.w r8, r8, r1, ror #20 + eor.w r12, lr, r10, ror #6 + ldrd r1, r5, [r0, #8] + eor.w r8, r8, r4, ror #7 + ldrd r10, lr, [r0, #152] + eor.w r7, r8, r5, ror #3 + eor.w r8, r12, r1, ror #3 + ldrd r1, r5, [r0, #168] + eor.w r3, r11, lr, ror #26 + eor.w r4, r6, r10, ror #27 + eor.w r2, r8, r5, ror #22 + eor.w r1, r7, r1, ror #22 + ror.w r9, r3, #0xa + eor.w r5, r9, r2, ror #21 + ror.w r6, r1, #0x15 + str r5, [sp] + eor.w r11, r6, r4, ror #10 + ldrd r7, r8, [r0, #16] + ldrd r5, r10, [r0, #56] + ldrd r1, r12, [r0, #176] + eor.w r8, r10, r8, ror #8 + eor.w r5, r5, r7, ror #9 + eor.w r7, r8, r12, ror #30 + ldrd lr, r8, [r0, #136] + eor.w r12, r5, r1, ror #30 + ldrd r10, r1, [r0, #96] + eor.w r5, r12, r8, ror #11 + eor.w r8, r7, lr, ror #11 + eor.w r3, r5, r10, ror #6 + str.w r11, [sp, #0x4] + eor.w r5, r8, r1, ror #6 + eor.w r8, r9, r3, ror #25 + ror.w r11, r5, #0x19 + str.w r8, [sp, #0xc] + eor.w r9, r11, r4, ror #9 + ldrd r4, r8, [r0, #144] + ldrd r12, r10, [r0, #184] + ldrd lr, r1, [r0, #104] + eor.w r5, r10, r8, ror #18 + eor.w r8, r12, r4, ror #18 + eor.w r4, r5, lr, ror #31 + ldrd r12, r5, [r0, #64] + eor.w r8, r8, r1 + ldrd r10, r1, [r0, #24] + eor.w r5, r4, r5, ror #18 + eor.w r8, r8, r12, ror #19 + eor.w r7, r5, r1, ror #1 + eor.w r4, r8, r10, ror #1 + eor.w r2, r7, r2, ror #22 + ldrd lr, r12, [r0, #120] + ldrd r10, r1, [r0, #160] + eor.w r6, r6, r4, ror #31 + ldrd r5, r8, [r0] + str r6, [sp, #0x10] + ldr r6, [r0, #0x8] + eor.w r5, r5, r1, ror #30 + eor.w r8, r8, r10, ror #31 + eor.w r12, r5, r12, ror #19 + ldrd r1, r5, [r0, #80] + eor.w r8, r8, lr, ror #20 + ldrd r10, lr, [r0, #40] + eor.w r5, r12, r5, ror #27 + eor.w r8, r8, r1, ror #27 + eor.w r1, r5, lr, ror #12 + eor.w r8, r8, r10, ror #13 + eor.w lr, r4, r1 + ldr r5, [r0, #0x48] + eor.w r10, r1, r3, ror #24 + eor.w r11, r8, r11 + eor.w r12, r7, r8, ror #31 + ldr.w r8, [sp, #0x4] + eor.w r4, r12, r5, ror #22 + ldr r3, [r0, #0x78] + ldr.w r7, [r0, #0xbc] + eor.w r5, r8, r3, ror #20 + ldr r1, [r0, #0x60] + eor.w r6, r11, r6, ror #25 + eor.w r3, r9, r7 + eor.w r7, r2, r1, ror #31 + bic.w r1, r5, r4, ror #24 + str.w r9, [sp, #0x8] + eor.w r1, r1, r3, ror #20 + str r1, [r0, #0x78] + bic.w r1, r3, r7, ror #15 + bic.w r3, r4, r3, ror #28 + eor.w r1, r1, r6, ror #23 + eor.w r3, r3, r7, ror #11 + str.w r1, [r0, #0xbc] + bic.w r1, r6, r5, ror #21 + bic.w r6, r7, r6, ror #8 + str r3, [r0, #0x48] + eor.w r6, r6, r5, ror #29 + ldr r7, [r0, #0x10] + eor.w r1, r1, r4, ror #13 + ldr r5, [r0, #0x28] + eor.w r3, r2, r7, ror #2 + str r6, [r0, #0x60] + eor.w r6, r8, r5, ror #13 + ldr.w r4, [r0, #0x84] + ldr r5, [r0, #0x68] + eor.w r7, r10, r4, ror #21 + str r1, [r0, #0x8] + eor.w r5, r9, r5, ror #31 + bic.w r4, r3, r7, ror #3 + ldr.w r1, [r0, #0xc0] + eor.w r8, r4, r6, ror #26 + eor.w r4, lr, r1, ror #14 + str.w r8, [r0, #0xc0] + bic.w r1, r4, r5, ror #24 + bic.w r8, r5, r3, ror #9 + eor.w r3, r1, r3, ror #1 + bic.w r1, r6, r4, ror #5 + str.w r3, [r0, #0x84] + bic.w r3, r7, r6, ror #23 + eor.w r1, r1, r5, ror #29 + ldr r5, [r0, #0x34] + ldr r6, [r0, #0x70] + str r1, [r0, #0x10] + eor.w r1, lr, r6, ror #10 + eor.w r7, r8, r7, ror #12 + ldr.w r8, [r0, #0x1c] + eor.w r6, r3, r4, ror #28 + eor.w r4, r9, r8, ror #1 + str r7, [r0, #0x28] + ldr.w r7, [r0, #0x8c] + str r6, [r0, #0x68] + ldr.w r8, [sp] + eor.w r6, r2, r7, ror #4 + eor.w r3, r10, r5, ror #28 + bic.w r7, r1, r4, ror #18 + bic.w r5, r4, r6, ror #20 + eor.w r7, r7, r6, ror #6 + eor.w r5, r5, r3, ror #23 + str r7, [r0, #0x1c] + ldr.w r7, [r0, #0xa4] + str.w r5, [r0, #0x8c] + eor.w r7, r8, r7, ror #30 + bic.w r5, r6, r3, ror #3 + ldr r6, [r0, #0x54] + eor.w r5, r5, r7, ror #22 + bic.w r3, r3, r7, ror #19 + bic.w r7, r7, r1, ror #4 + str r5, [r0, #0x34] + eor.w r1, r3, r1, ror #23 + eor.w r4, r7, r4, ror #22 + ldr.w r7, [r0, #0xac] + ldr r3, [r0, #0x38] + str.w r1, [r0, #0xa4] + ldr.w r5, [r0, #0x94] + str r4, [r0, #0x70] + eor.w r3, r2, r3, ror #25 + ldr r1, [r0, #0x24] + eor.w r4, r9, r5, ror #18 + eor.w r5, r12, r1, ror #29 + eor.w r7, r11, r7, ror #12 + bic.w r1, r5, r4, ror #24 + eor.w r6, r8, r6, ror #27 + eor.w r9, r1, r3, ror #20 + bic.w r1, r4, r3, ror #28 + str.w r9, [r0, #0x54] + bic.w r9, r3, r7, ror #30 + bic.w r3, r7, r6, ror #13 + eor.w r1, r1, r7, ror #26 + eor.w r3, r3, r5, ror #14 + ldr.w r7, [r0, #0xb0] + bic.w r5, r6, r5, ror #1 + str r3, [r0, #0x38] + eor.w r5, r5, r4, ror #25 + eor.w r4, r9, r6, ror #11 + str r1, [r0, #0x24] + ldr r1, [r0, #0x40] + ldr.w r9, [sp, #0xc] + str.w r5, [r0, #0xac] + ldr.w r3, [r0, #0x9c] + eor.w r7, r2, r7, ror #23 + eor.w r1, r9, r1, ror #19 + eor.w r6, r12, r3, ror #4 + ldr r2, [r0, #0x5c] + str.w r4, [r0, #0x94] + eor.w r3, r10, r2, ror #9 + bic.w r4, r6, r1, ror #28 + ldr r2, [r0] + eor.w r5, r4, r7, ror #17 + eor.w r4, r8, r2 + str.w r5, [r0, #0xb0] + bic.w r5, r4, r6, ror #25 + bic.w r2, r1, r7, ror #21 + eor.w r5, r5, r1, ror #21 + bic.w r1, r7, r3 + eor.w r2, r2, r3, ror #21 + str r5, [r0, #0x40] + bic.w r3, r3, r4, ror #22 + ldr r7, [r0, #0x7c] + ldr r5, [r0, #0x4c] + eor.w r1, r4, r1, ror #10 + eor.w r6, r3, r6, ror #15 + eor.w r7, r8, r7, ror #19 + str.w r6, [r0, #0x9c] + ldr r4, [r0, #0x64] + str r2, [r0, #0x5c] + ldr r6, [r0, #0xc] + ldr r2, [sp, #0x14] + ldr r3, [r2, #0x10] + eor.w r6, r10, r6, ror #24 + eor.w r1, r3, r1 + ldr r2, [sp, #0x10] + eor.w r3, r2, r4, ror #31 + str r1, [r0] + bic.w r1, r3, r6, ror #8 + ldr.w r4, [r0, #0xb8] + eor.w r1, r1, r7, ror #29 + eor.w r4, r9, r4 + str r1, [r0, #0x64] + bic.w r1, r4, r3, ror #16 + eor.w r5, lr, r5, ror #22 + eor.w r1, r1, r6, ror #24 + bic.w r6, r6, r7, ror #21 + str.w r1, [r0, #0xb8] + bic.w r1, r5, r4, ror #28 + eor.w r6, r6, r5, ror #12 + bic.w r7, r7, r5, ror #23 + ldr r5, [r0, #0x6c] + eor.w r1, r1, r3, ror #12 + str r6, [r0, #0xc] + ldr.w r3, [r0, #0x80] + eor.w r4, r7, r4, ror #19 + ldr r7, [r0, #0x2c] + str r4, [r0, #0x7c] + eor.w r6, r11, r3, ror #22 + eor.w r8, r8, r7, ror #12 + ldr r7, [r0, #0x14] + str r1, [r0, #0x4c] + eor.w r3, r2, r7, ror #1 + ldr.w r7, [r0, #0xc4] + eor.w r1, r9, r5 + bic.w r4, r1, r3, ror #10 + eor.w r7, r12, r7, ror #14 + eor.w r5, r4, r6, ror #12 + bic.w r4, r6, r8, ror #24 + str r5, [r0, #0x2c] + eor.w r5, r4, r7, ror #29 + bic.w r4, r3, r6, ror #2 + str r5, [r0, #0x6c] + bic.w r6, r7, r1, ror #23 + bic.w r5, r8, r7, ror #5 + eor.w r3, r6, r3, ror #1 + eor.w r1, r5, r1, ror #28 + str.w r3, [r0, #0x80] + ldr r6, [r0, #0x30] + eor.w r8, r4, r8, ror #26 + eor.w r3, r11, r6, ror #28 + str.w r8, [r0, #0xc4] + ldr.w r8, [sp, #0x4] + str r1, [r0, #0x14] + ldr r5, [r0, #0x74] + ldr.w r4, [r0, #0xa0] + eor.w r7, r12, r5, ror #10 + eor.w r6, r8, r4, ror #31 + ldr.w r5, [r0, #0x88] + ldr r1, [r0, #0x18] + eor.w r4, r2, r5, ror #4 + bic.w r5, r3, r6, ror #19 + eor.w r12, r9, r1, ror #1 + eor.w r1, r5, r7, ror #24 + bic.w r5, r4, r3, ror #2 + str.w r1, [r0, #0xa0] + eor.w r1, r5, r6, ror #21 + bic.w r5, r12, r4, ror #21 + str r1, [r0, #0x30] + bic.w r1, r6, r7, ror #5 + bic.w r7, r7, r12, ror #17 + eor.w r5, r5, r3, ror #23 + eor.w r1, r1, r12, ror #22 + ldr.w r12, [r0, #0xa8] + str r1, [r0, #0x74] + eor.w r1, r7, r4, ror #6 + str.w r5, [r0, #0x88] + ldr.w r5, [r0, #0x90] + str r1, [r0, #0x18] + eor.w r7, r10, r12, ror #11 + eor.w r4, r9, r5, ror #18 + ldr r5, [r0, #0x20] + ldr r1, [r0, #0x50] + eor.w r5, lr, r5, ror #29 + eor.w r6, r8, r1, ror #27 + ldr r3, [r0, #0x3c] + bic.w r1, r6, r5, ror #1 + bic.w r10, r5, r4, ror #24 + eor.w r1, r1, r4, ror #25 + eor.w r3, r2, r3, ror #25 + str.w r1, [r0, #0xa8] + bic.w r1, r7, r6, ror #12 + eor.w r9, r10, r3, ror #21 + eor.w r1, r1, r5, ror #13 + str.w r9, [r0, #0x50] + str r1, [r0, #0x3c] + bic.w r1, r3, r7, ror #30 + bic.w r12, r4, r3, ror #29 + eor.w r5, r1, r6, ror #10 + eor.w r4, r12, r7, ror #27 + str.w r5, [r0, #0x90] + ldr r7, [sp, #0x8] + ldr.w r12, [r0, #0x4] + ldr r6, [r0, #0x58] + ldr.w r10, [r0, #0xb4] + ldr r1, [r0, #0x44] + ldr.w r5, [r0, #0x98] + str r4, [r0, #0x20] + eor.w r4, r8, r12 + eor.w r12, r2, r10, ror #23 + eor.w r1, r7, r1, ror #18 + eor.w r10, r11, r6, ror #10 + bic.w r8, r1, r12, ror #21 + eor.w lr, lr, r5, ror #5 + eor.w r5, r8, r10, ror #20 + bic.w r8, lr, r1, ror #29 + str r5, [r0, #0x58] + eor.w r5, r8, r12, ror #18 + bic.w r8, r4, lr, ror #25 + str.w r5, [r0, #0xb4] + eor.w r5, r8, r1, ror #22 + bic.w r8, r10, r4, ror #22 + str r5, [r0, #0x44] + eor.w r8, r8, lr, ror #15 + bic.w r5, r12, r10, ror #31 + str.w r8, [r0, #0x98] + ldr.w r8, [sp, #0x14] + eor.w lr, r4, r5, ror #11 + ldrd r2, r7, [r0, #168] + ldr.w r8, [r8, #0x14] + eor.w r11, r8, lr + ldrd r5, r12, [r0, #72] + ldrd r10, r8, [r0, #152] + ldrd r1, lr, [r0, #192] + eor.w r5, r8, r5, ror #12 + eor.w r8, r10, r12, ror #12 + eor.w r12, r5, lr, ror #19 + ldrd r5, r10, [r0, #112] + eor.w r8, r8, r1, ror #19 + ldrd r1, lr, [r0, #32] + eor.w r5, r12, r5, ror #4 + eor.w r8, r8, r10, ror #4 + eor.w r6, r5, r1, ror #26 + eor.w r4, r8, lr, ror #27 + ldrd lr, r10, [r0, #8] + ldrd r5, r8, [r0, #88] + ldrd r12, r1, [r0, #128] + eor.w lr, r8, lr, ror #20 + eor.w r8, r5, r10, ror #20 + eor.w lr, lr, r12, ror #7 + ldrd r10, r5, [r0, #48] + eor.w r8, r8, r1, ror #6 + ror.w r3, r6, #0xa + eor.w r5, lr, r5, ror #3 + eor.w r8, r8, r10, ror #3 + eor.w r5, r5, r2, ror #22 + eor.w r8, r8, r7, ror #22 + ror.w r7, r5, #0x15 + eor.w r12, r7, r4, ror #10 + eor.w lr, r3, r8, ror #21 + str.w r12, [sp, #0x4] + ldrd r1, r5, [r0, #176] + ldrd r6, r10, [r0, #96] + str.w lr, [sp] + str.w r11, [r0, #0x4] + eor.w r1, r1, r6, ror #8 + ldrd r6, r2, [r0, #184] + ldrd r9, r12, [r0, #64] + eor.w r5, r5, r10, ror #9 + eor.w r10, r9, r2, ror #18 + ldrd r11, lr, [r0, #104] + eor.w r6, r12, r6, ror #18 + ldrd r9, r2, [r0, #24] + eor.w r6, r6, r11 + eor.w r12, r10, lr, ror #31 + eor.w r9, r6, r9, ror #19 + ldrd r10, r6, [r0, #16] + eor.w lr, r12, r2, ror #18 + ldrd r2, r12, [r0, #136] + eor.w r1, r1, r6, ror #30 + ldrd r11, r6, [r0, #56] + eor.w r1, r1, r12, ror #11 + eor.w r5, r5, r10, ror #30 + eor.w r1, r1, r6, ror #6 + eor.w r10, r5, r2, ror #11 + ldrd r6, r2, [r0, #144] + eor.w r10, r10, r11, ror #6 + ldrd r12, r11, [r0, #120] + eor.w r6, lr, r6, ror #1 + ror.w r1, r1, #0x19 + eor.w r5, r3, r10, ror #25 + ldrd r3, lr, [r0] + str r5, [sp, #0xc] + eor.w r5, lr, r11, ror #31 + eor.w lr, r9, r2, ror #1 + eor.w r9, r1, r4, ror #9 + eor.w r2, r6, r8, ror #22 + ldrd r11, r8, [r0, #40] + eor.w r3, r3, r12, ror #30 + eor.w r7, r7, lr, ror #31 + eor.w r8, r3, r8, ror #19 + str r7, [sp, #0x10] + ldrd r7, r12, [r0, #160] + ldr r3, [r0, #0x38] + eor.w r11, r5, r11, ror #20 + eor.w r4, r8, r12, ror #27 + ldrd r5, r12, [r0, #80] + eor.w r3, r2, r3, ror #31 + eor.w r11, r11, r7, ror #27 + eor.w r7, r4, r5, ror #12 + ldr.w r8, [sp, #0x4] + eor.w r12, r11, r12, ror #13 + eor.w lr, lr, r7 + eor.w r11, r12, r1 + ldr r5, [r0, #0x30] + eor.w r10, r7, r10, ror #24 + eor.w r5, r11, r5, ror #25 + eor.w r12, r6, r12, ror #31 + ldr r6, [r0, #0x28] + ldr r1, [r0, #0x40] + eor.w r6, r8, r6, ror #20 + bic.w r4, r3, r5, ror #8 + ldr r7, [r0, #0x48] + eor.w r4, r4, r6, ror #29 + eor.w r7, r12, r7, ror #22 + ror.w r4, r4, #0x1 + str r4, [r0, #0x38] + eor.w r4, r9, r1 + bic.w r1, r6, r7, ror #24 + str.w r9, [sp, #0x8] + eor.w r1, r1, r4, ror #20 + bic.w r6, r5, r6, ror #21 + ror.w r1, r1, #0x1e + str r1, [r0, #0x28] + bic.w r1, r4, r3, ror #15 + eor.w r6, r6, r7, ror #13 + bic.w r4, r7, r4, ror #28 + ror.w r7, r6, #0x9 + ldr r6, [r0, #0x54] + str r7, [r0, #0x30] + eor.w r1, r1, r5, ror #23 + ldr r5, [r0, #0x6c] + eor.w r7, r4, r3, ror #11 + eor.w r5, r9, r5, ror #31 + eor.w r4, r8, r6, ror #13 + ldr.w r8, [r0, #0x5c] + ror.w r6, r1, #0x12 + ldr r3, [r0, #0x64] + eor.w r8, r10, r8, ror #21 + str r6, [r0, #0x40] + eor.w r6, r2, r3, ror #2 + ror.w r3, r7, #0x16 + str r3, [r0, #0x48] + bic.w r1, r5, r6, ror #9 + bic.w r7, r8, r4, ror #23 + eor.w r3, r1, r8, ror #12 + bic.w r8, r6, r8, ror #3 + ror.w r3, r3, #0x14 + eor.w r1, r8, r4, ror #26 + ldr.w r8, [r0, #0x74] + str r3, [r0, #0x54] + eor.w r3, lr, r8, ror #14 + ror.w r8, r1, #0x1d + str.w r8, [r0, #0x74] + bic.w r4, r4, r3, ror #5 + eor.w r7, r7, r3, ror #28 + eor.w r4, r4, r5, ror #29 + ldr.w r1, [r0, #0x80] + ror.w r4, r4, #0x17 + str r4, [r0, #0x64] + bic.w r4, r3, r5, ror #24 + eor.w r1, r10, r1, ror #28 + eor.w r3, r4, r6, ror #1 + ldr.w r8, [r0, #0x88] + ldr.w r5, [r0, #0x98] + eor.w r4, r2, r8, ror #4 + ldr.w r8, [sp] + eor.w r5, lr, r5, ror #10 + ldr r6, [r0, #0x78] + str r7, [r0, #0x6c] + eor.w r6, r8, r6, ror #30 + bic.w r7, r4, r1, ror #3 + ror.w r3, r3, #0x1c + eor.w r7, r7, r6, ror #22 + str r3, [r0, #0x5c] + ror.w r7, r7, #0x18 + ldr.w r3, [r0, #0x90] + str.w r7, [r0, #0x80] + bic.w r7, r1, r6, ror #19 + eor.w r3, r9, r3, ror #1 + eor.w r7, r7, r5, ror #23 + bic.w r6, r6, r5, ror #4 + bic.w r5, r5, r3, ror #18 + ror.w r7, r7, #0x1b + eor.w r5, r5, r4, ror #6 + bic.w r4, r3, r4, ror #20 + str r7, [r0, #0x78] + ror.w r5, r5, #0x12 + str.w r5, [r0, #0x90] + eor.w r5, r4, r1, ror #23 + ldr.w r4, [r0, #0xbc] + ror.w r5, r5, #0x4 + eor.w r1, r6, r3, ror #22 + ldr.w r3, [r0, #0xb4] + ror.w r1, r1, #0xe + str.w r5, [r0, #0x88] + ldr.w r5, [r0, #0xc4] + ldr.w r6, [r0, #0xa4] + ldr.w r7, [r0, #0xac] + str.w r1, [r0, #0x98] + eor.w r9, r9, r4, ror #18 + eor.w r5, r12, r5, ror #29 + eor.w r1, r8, r6, ror #27 + eor.w r3, r2, r3, ror #25 + bic.w r4, r1, r5, ror #1 + eor.w r7, r11, r7, ror #12 + eor.w r4, r4, r9, ror #25 + ldr r6, [r0, #0x10] + ror.w r4, r4, #0xc + str.w r4, [r0, #0xac] + eor.w r4, r2, r6, ror #23 + bic.w r6, r5, r9, ror #24 + bic.w r2, r7, r1, ror #13 + eor.w r6, r6, r3, ror #20 + eor.w r5, r2, r5, ror #14 + bic.w r2, r3, r7, ror #30 + ror.w r6, r6, #0xd + eor.w r2, r2, r1, ror #11 + ldr r1, [r0, #0x18] + bic.w r9, r9, r3, ror #28 + str.w r6, [r0, #0xa4] + eor.w r9, r9, r7, ror #26 + ror.w r6, r5, #0x1f + ldr r5, [r0] + ror.w r7, r2, #0x1 + ldr r2, [r0, #0x8] + str.w r7, [r0, #0xbc] + str.w r6, [r0, #0xb4] + ror.w r6, r9, #0x5 + ldr.w r9, [sp, #0xc] + ldr r7, [r0, #0x20] + eor.w r3, r9, r1, ror #19 + eor.w r1, r12, r7, ror #4 + eor.w r7, r8, r5 + bic.w r5, r1, r3, ror #28 + eor.w r2, r10, r2, ror #9 + eor.w r5, r5, r4, ror #17 + str.w r6, [r0, #0xc4] + ror.w r6, r5, #0x19 + bic.w r5, r3, r4, ror #21 + str r6, [r0, #0x10] + eor.w r5, r5, r2, ror #21 + bic.w r6, r7, r1, ror #25 + ror.w r5, r5, #0x15 + str r5, [r0, #0x8] + eor.w r5, r6, r3, ror #21 + ldr r6, [r0, #0x4c] + str r5, [r0, #0x18] + bic.w r5, r2, r7, ror #22 + bic.w r4, r4, r2 + ldr r2, [sp, #0x10] + eor.w r1, r5, r1, ror #15 + ldr r5, [sp, #0x14] + ror.w r3, r1, #0xa + str r3, [r0, #0x20] + ldr r1, [r5, #0x18] + eor.w r3, r7, r4, ror #10 + eor.w r4, lr, r6, ror #22 + eor.w r3, r1, r3 + ldr r1, [r0, #0x3c] + ldr r5, [r0, #0x2c] + ldr r6, [r0, #0x34] + eor.w r5, r8, r5, ror #19 + eor.w r6, r10, r6, ror #24 + eor.w r7, r2, r1, ror #31 + bic.w r1, r6, r5, ror #21 + str r3, [r0] + bic.w r3, r7, r6, ror #8 + eor.w r1, r1, r4, ror #12 + eor.w r3, r3, r5, ror #29 + bic.w r5, r5, r4, ror #23 + ror.w r3, r3, #0x2 + str r3, [r0, #0x3c] + ldr r3, [r0, #0x44] + ror.w r1, r1, #0xa + eor.w r3, r9, r3 + str r1, [r0, #0x34] + bic.w r1, r4, r3, ror #28 + eor.w r5, r5, r3, ror #19 + eor.w r1, r1, r7, ror #12 + bic.w r7, r3, r7, ror #16 + ror.w r1, r1, #0x16 + eor.w r7, r7, r6, ror #24 + str r1, [r0, #0x4c] + ldr r1, [r0, #0x58] + ldr r4, [r0, #0x68] + eor.w r3, r11, r1, ror #22 + ror.w r7, r7, #0x12 + ror.w r6, r5, #0x1f + ldr r5, [r0, #0x50] + eor.w r4, r9, r4 + eor.w r5, r8, r5, ror #12 + ldr r1, [r0, #0x70] + str r6, [r0, #0x2c] + eor.w r6, r12, r1, ror #14 + ldr r1, [r0, #0x60] + str r7, [r0, #0x44] + eor.w r7, r2, r1, ror #1 + bic.w r8, r6, r4, ror #23 + bic.w r1, r7, r3, ror #2 + eor.w r8, r8, r7, ror #1 + bic.w r7, r4, r7, ror #10 + eor.w r1, r1, r5, ror #26 + eor.w r7, r7, r3, ror #12 + ror.w r8, r8, #0x1c + ror.w r7, r7, #0x13 + str.w r8, [r0, #0x58] + ror.w r8, r1, #0x1d + str r7, [r0, #0x50] + str.w r8, [r0, #0x70] + ldr.w r8, [r0, #0x94] + bic.w r3, r3, r5, ror #24 + ldr.w r7, [r0, #0x8c] + bic.w r1, r5, r6, ror #5 + ldr.w r5, [r0, #0x84] + eor.w r1, r1, r4, ror #28 + ldr r4, [r0, #0x7c] + eor.w r3, r3, r6, ror #29 + ror.w r6, r1, #0x17 + eor.w r1, r11, r5, ror #28 + str r6, [r0, #0x60] + eor.w r6, r2, r7, ror #4 + eor.w r7, r9, r8, ror #1 + ldr.w r8, [sp, #0x4] + eor.w r4, r8, r4, ror #31 + ror.w r5, r3, #0x1f + str r5, [r0, #0x68] + bic.w r5, r6, r1, ror #2 + ldr.w r3, [r0, #0x9c] + eor.w r5, r5, r4, ror #21 + eor.w r3, r12, r3, ror #10 + ror.w r5, r5, #0x19 + str.w r5, [r0, #0x84] + bic.w r12, r1, r4, ror #19 + bic.w r5, r7, r6, ror #21 + eor.w r12, r12, r3, ror #24 + eor.w r1, r5, r1, ror #23 + ldr.w r5, [r0, #0xb0] + ror.w r12, r12, #0x1b + eor.w r5, r2, r5, ror #25 + bic.w r4, r4, r3, ror #5 + str.w r12, [r0, #0x7c] + ror.w r1, r1, #0x4 + str.w r1, [r0, #0x8c] + eor.w r4, r4, r7, ror #22 + bic.w r1, r3, r7, ror #17 + ror.w r12, r4, #0xe + eor.w r1, r1, r6, ror #6 + ldr.w r7, [r0, #0xb8] + ror.w r1, r1, #0x13 + str.w r1, [r0, #0x94] + str.w r12, [r0, #0x9c] + ldr.w r12, [r0, #0xa8] + eor.w r3, r9, r7, ror #18 + ldr.w r6, [r0, #0xc0] + ldr.w r1, [r0, #0xa0] + eor.w r9, lr, r6, ror #29 + eor.w r7, r8, r1, ror #27 + bic.w r1, r9, r3, ror #24 + eor.w r6, r10, r12, ror #11 + eor.w r10, r1, r5, ror #21 + bic.w r1, r7, r9, ror #1 + ldr r4, [sp, #0x8] + ror.w r10, r10, #0xc + eor.w r1, r1, r3, ror #25 + str.w r10, [r0, #0xa0] + ror.w r12, r1, #0xb + bic.w r3, r3, r5, ror #29 + bic.w r1, r6, r7, ror #12 + str.w r12, [r0, #0xa8] + eor.w r1, r1, r9, ror #13 + bic.w r5, r5, r6, ror #30 + ror.w r1, r1, #0x1f + eor.w r5, r5, r7, ror #10 + str.w r1, [r0, #0xb0] + ror.w r1, r5, #0x1 + eor.w r5, r3, r6, ror #27 + str.w r1, [r0, #0xb8] + ror.w r6, r5, #0x4 + ldr.w r12, [r0, #0x4] + ldr r3, [r0, #0xc] + ldr.w r10, [r0, #0x14] + ldr r1, [r0, #0x1c] + ldr r5, [r0, #0x24] + str.w r6, [r0, #0xc0] + ldr r6, [sp, #0x14] + ldr r7, [r6, #0x1c] + eor.w r9, r8, r12 + eor.w r12, r2, r10, ror #23 + eor.w r10, r4, r1, ror #18 + eor.w r11, r11, r3, ror #10 + bic.w r8, r10, r12, ror #21 + eor.w lr, lr, r5, ror #5 + eor.w r8, r8, r11, ror #20 + bic.w r5, lr, r10, ror #29 + ror.w r8, r8, #0x16 + eor.w r4, r5, r12, ror #18 + str.w r8, [r0, #0xc] + ror.w r8, r4, #0x19 + str.w r8, [r0, #0x14] + bic.w r3, r9, lr, ror #25 + bic.w r8, r11, r9, ror #22 + eor.w r5, r3, r10, ror #22 + eor.w r1, r8, lr, ror #15 + str r5, [r0, #0x1c] + ror.w r1, r1, #0xa + bic.w lr, r12, r11, ror #31 + ldr r8, [r6, #32]! + str r6, [sp, #0x14] + cmp.w r8, #0xff + eor.w r3, r9, lr, ror #11 + str r1, [r0, #0x24] + eor.w r1, r7, r3 + str r1, [r0, #0x4] + +Lmld_keccak_f1600_x1_armv7m_asm_slothy_end: + bne.w Lmld_keccak_f1600_x1_armv7m_asm_slothy_start @ imm = #-0x1468 + add sp, #0x18 + .cfi_adjust_cfa_offset -0x18 + pop.w {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc} + .cfi_restore r4 + .cfi_restore r5 + .cfi_restore r6 + .cfi_restore r7 + .cfi_restore r8 + .cfi_restore r9 + .cfi_restore r10 + .cfi_restore r11 + .cfi_restore lr + .cfi_adjust_cfa_offset -0x28 + .cfi_endproc + nop + +MLD_ASM_FN_SIZE(keccak_f1600_x1_armv7m_asm) + +#endif /* MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */ + +#if defined(__ELF__) +.section .note.GNU-stack,"",%progbits +#endif diff --git a/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_state_extract_bytes_armv7m.S b/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_state_extract_bytes_armv7m.S new file mode 100644 index 0000000000..38e08d9516 --- /dev/null +++ b/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_state_extract_bytes_armv7m.S @@ -0,0 +1,271 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* + * This helper is derived from the public-domain XKCP implementation and the + * Armv7-M optimizations described in [ADOMNICAI23]. See the backend README, + * BIBLIOGRAPHY, and LICENSE files for full provenance and license terms. + */ + +/*yaml + Name: keccak_f1600_x1_state_extract_bytes_scalar_asm + Description: Scalar fallback for extracting bytes from the final x1 Keccak state lane pair + Signature: void mld_keccak_f1600_x1_state_extract_bytes_scalar_asm(void *state, uint8_t *data, unsigned offset, unsigned length) + ABI: + Architecture: armv81m + CallingConvention: AAPCS32 + Features: [] + r0: + type: buffer + size_bytes: 200 + permissions: read-only + c_parameter: void *state + description: Bit-interleaved x1 Keccak state + r1: + type: buffer + size_bytes: r3 + permissions: write-only + c_parameter: uint8_t *data + description: Output byte buffer + r2: + type: scalar + c_parameter: unsigned offset + description: Byte offset within the 200-byte state + test_with: 7 + r3: + type: scalar + c_parameter: unsigned length + description: Number of output bytes + test_with: 9 + Stack: + bytes: 32 + description: register preservation (24) plus one temporary lane (8) +*/ + +/* + * AAPCS32 contract: preserves r4-r11 and sp. The caller-saved r0-r3, r12, + * APSR condition flags, and lr may be clobbered. No floating-point or MVE + * registers are accessed. This is the private fallback for the MVE helper's + * final eight-byte state lane. + */ + +#include "../../../../common.h" + +#if defined(MLD_FIPS202_ARMV81M_NEED_X1) && \ + !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) + +/* + * WARNING: This file is auto-derived from the mldsa-native source file + * dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_extract_bytes_armv7m.S using scripts/simpasm. Do not modify it directly. + */ + +.thumb +.syntax unified + +.text +.balign 4 +.global MLD_ASM_NAMESPACE(keccak_f1600_x1_state_extract_bytes_scalar_asm) +MLD_ASM_FN_SYMBOL(keccak_f1600_x1_state_extract_bytes_scalar_asm) + + .cfi_startproc + cmp r3, #0x0 + beq.w Lmld_keccak_f1600_x1_state_extract_bytes_scalar_exit @ imm = #0x1fc + push.w {r4, r5, r6, r7, r8, lr} + .cfi_adjust_cfa_offset 0x18 + .cfi_rel_offset r4, 0x0 + .cfi_rel_offset r5, 0x4 + .cfi_rel_offset r6, 0x8 + .cfi_rel_offset r7, 0xc + .cfi_rel_offset r8, 0x10 + .cfi_rel_offset lr, 0x14 + bic r4, r2, #0x7 + adds r0, r0, r4 + ands r2, r2, #0x7 + beq.w Lmld_keccak_f1600_x1_state_extract_bytes_scalar_check_lanes @ imm = #0xac + movs r4, r3 + rsb.w r5, r2, #0x8 + cmp r4, r5 + ble Lmld_keccak_f1600_x1_state_extract_bytes_scalar_align @ imm = #0x0 + movs r4, r5 + +Lmld_keccak_f1600_x1_state_extract_bytes_scalar_align: + sub.w r8, r3, r4 + movs r3, r4 + ldrd r4, r5, [r0], #8 + movs r6, r4 + bfi r4, r5, #16, #16 + bfc r5, #0, #16 + orr.w r5, r5, r6, lsr #16 + eor.w r6, r4, r4, lsr #8 + and r6, r6, #0xff00 + eors r4, r6 + eor.w r4, r4, r6, lsl #8 + eor.w r6, r4, r4, lsr #4 + and r6, r6, #0xf000f0 + eors r4, r6 + eor.w r4, r4, r6, lsl #4 + eor.w r6, r4, r4, lsr #2 + and r6, r6, #0xc0c0c0c + eors r4, r6 + eor.w r4, r4, r6, lsl #2 + eor.w r6, r4, r4, lsr #1 + and r6, r6, #0x22222222 + eors r4, r6 + eor.w r4, r4, r6, lsl #1 + eor.w r6, r5, r5, lsr #8 + and r6, r6, #0xff00 + eors r5, r6 + eor.w r5, r5, r6, lsl #8 + eor.w r6, r5, r5, lsr #4 + and r6, r6, #0xf000f0 + eors r5, r6 + eor.w r5, r5, r6, lsl #4 + eor.w r6, r5, r5, lsr #2 + and r6, r6, #0xc0c0c0c + eors r5, r6 + eor.w r5, r5, r6, lsl #2 + eor.w r6, r5, r5, lsr #1 + and r6, r6, #0x22222222 + eors r5, r6 + eor.w r5, r5, r6, lsl #1 + sub sp, #0x8 + .cfi_adjust_cfa_offset 0x8 + strd r4, r5, [sp] + add r2, sp, r2 + +Lmld_keccak_f1600_x1_state_extract_bytes_scalar_in_lane_loop_first: + ldrb r4, [r2], #1 + subs r3, #0x1 + strb r4, [r1], #1 + bne Lmld_keccak_f1600_x1_state_extract_bytes_scalar_in_lane_loop_first @ imm = #-0xe + add sp, #0x8 + .cfi_adjust_cfa_offset -0x8 + mov r3, r8 + +Lmld_keccak_f1600_x1_state_extract_bytes_scalar_check_lanes: + lsrs r2, r3, #0x3 + beq.w Lmld_keccak_f1600_x1_state_extract_bytes_scalar_tail @ imm = #0x94 + mov r8, r3 + +Lmld_keccak_f1600_x1_state_extract_bytes_scalar_lanes_loop: + ldrd r4, r5, [r0], #8 + movs r3, r4 + bfi r4, r5, #16, #16 + bfc r5, #0, #16 + orr.w r5, r5, r3, lsr #16 + eor.w r3, r4, r4, lsr #8 + and r3, r3, #0xff00 + eors r4, r3 + eor.w r4, r4, r3, lsl #8 + eor.w r3, r4, r4, lsr #4 + and r3, r3, #0xf000f0 + eors r4, r3 + eor.w r4, r4, r3, lsl #4 + eor.w r3, r4, r4, lsr #2 + and r3, r3, #0xc0c0c0c + eors r4, r3 + eor.w r4, r4, r3, lsl #2 + eor.w r3, r4, r4, lsr #1 + and r3, r3, #0x22222222 + eors r4, r3 + eor.w r4, r4, r3, lsl #1 + eor.w r3, r5, r5, lsr #8 + and r3, r3, #0xff00 + eors r5, r3 + eor.w r5, r5, r3, lsl #8 + eor.w r3, r5, r5, lsr #4 + and r3, r3, #0xf000f0 + eors r5, r3 + eor.w r5, r5, r3, lsl #4 + eor.w r3, r5, r5, lsr #2 + and r3, r3, #0xc0c0c0c + eors r5, r3 + eor.w r5, r5, r3, lsl #2 + eor.w r3, r5, r5, lsr #1 + and r3, r3, #0x22222222 + eors r5, r3 + eor.w r5, r5, r3, lsl #1 + str r4, [r1], #4 + subs r2, #0x1 + str r5, [r1], #4 + bne Lmld_keccak_f1600_x1_state_extract_bytes_scalar_lanes_loop @ imm = #-0x90 + and r3, r8, #0x7 + +Lmld_keccak_f1600_x1_state_extract_bytes_scalar_tail: + cmp r3, #0x0 + beq.w Lmld_keccak_f1600_x1_state_extract_bytes_scalar_restore @ imm = #0x9a + movs r2, #0x0 + ldrd r4, r5, [r0], #8 + movs r6, r4 + bfi r4, r5, #16, #16 + bfc r5, #0, #16 + orr.w r5, r5, r6, lsr #16 + eor.w r6, r4, r4, lsr #8 + and r6, r6, #0xff00 + eors r4, r6 + eor.w r4, r4, r6, lsl #8 + eor.w r6, r4, r4, lsr #4 + and r6, r6, #0xf000f0 + eors r4, r6 + eor.w r4, r4, r6, lsl #4 + eor.w r6, r4, r4, lsr #2 + and r6, r6, #0xc0c0c0c + eors r4, r6 + eor.w r4, r4, r6, lsl #2 + eor.w r6, r4, r4, lsr #1 + and r6, r6, #0x22222222 + eors r4, r6 + eor.w r4, r4, r6, lsl #1 + eor.w r6, r5, r5, lsr #8 + and r6, r6, #0xff00 + eors r5, r6 + eor.w r5, r5, r6, lsl #8 + eor.w r6, r5, r5, lsr #4 + and r6, r6, #0xf000f0 + eors r5, r6 + eor.w r5, r5, r6, lsl #4 + eor.w r6, r5, r5, lsr #2 + and r6, r6, #0xc0c0c0c + eors r5, r6 + eor.w r5, r5, r6, lsl #2 + eor.w r6, r5, r5, lsr #1 + and r6, r6, #0x22222222 + eors r5, r6 + eor.w r5, r5, r6, lsl #1 + sub sp, #0x8 + .cfi_adjust_cfa_offset 0x8 + strd r4, r5, [sp] + add r2, sp, r2 + +Lmld_keccak_f1600_x1_state_extract_bytes_scalar_in_lane_loop_tail: + ldrb r4, [r2], #1 + subs r3, #0x1 + strb r4, [r1], #1 + bne Lmld_keccak_f1600_x1_state_extract_bytes_scalar_in_lane_loop_tail @ imm = #-0xe + add sp, #0x8 + .cfi_adjust_cfa_offset -0x8 + +Lmld_keccak_f1600_x1_state_extract_bytes_scalar_restore: + pop.w {r4, r5, r6, r7, r8, lr} + .cfi_restore r4 + .cfi_restore r5 + .cfi_restore r6 + .cfi_restore r7 + .cfi_restore r8 + .cfi_restore lr + .cfi_adjust_cfa_offset -0x18 + +Lmld_keccak_f1600_x1_state_extract_bytes_scalar_exit: + bx lr + .cfi_endproc + +MLD_ASM_FN_SIZE(keccak_f1600_x1_state_extract_bytes_scalar_asm) + +#endif /* MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */ + +#if defined(__ELF__) +.section .note.GNU-stack,"",%progbits +#endif diff --git a/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_state_extract_bytes_mve.S b/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_state_extract_bytes_mve.S new file mode 100644 index 0000000000..8c07fa751c --- /dev/null +++ b/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_state_extract_bytes_mve.S @@ -0,0 +1,239 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * Copyright (c) 2026 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* + * This helper is adapted from the Armv8.1-M MVE x1 byte-operation work in + * mlkem-native. It converts two adjacent Keccak lanes at once between the + * bit-interleaved x1 representation and bytes. + */ + +/*yaml + Name: keccak_f1600_x1_state_extract_bytes_asm + Description: Armv8.1-M MVE fast path for extracting bytes from an x1 bit-interleaved Keccak state + Signature: void mld_keccak_f1600_x1_state_extract_bytes_asm(void *state, uint8_t *data, unsigned offset, unsigned length) + ABI: + Architecture: armv81m + CallingConvention: AAPCS32 + Features: [MVE] + r0: + type: buffer + size_bytes: 200 + permissions: read-only + c_parameter: void *state + description: Bit-interleaved x1 Keccak state, naturally aligned for 32-bit MVE state accesses + r1: + type: buffer + size_bytes: r3 + permissions: write-only + c_parameter: uint8_t *data + description: Arbitrarily byte-aligned output bytes + r2: + type: scalar + c_parameter: unsigned offset + description: Byte offset within the first 192 state bytes; the C wrapper dispatches final-lane ranges to the scalar helper + test_with: 7 + r3: + type: scalar + c_parameter: unsigned length + description: Number of output bytes such that offset plus length is at most 192 + test_with: 9 + Stack: + bytes: 40 + description: AAPCS32 preservation of r4-r11 and lr; the MVE fast path uses only caller-saved q0-q3 and p0 +*/ + +/* + * AAPCS32 contract: preserves r4-r11, sp, and d8-d15/q4-q7. The caller-saved + * r0-r3, r12, lr, APSR condition flags, q0-q3, and p0 may be clobbered. + * The MVE fast path covers only byte ranges ending at or before state byte + * 192, so each 16-byte state vector access remains within the 200-byte state. + * The C wrapper dispatches ranges touching the final eight-byte lane to the + * scalar helper. + */ + +#include "../../../../common.h" + +#if defined(MLD_FIPS202_ARMV81M_NEED_X1) && !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) && defined(__ARM_FEATURE_MVE) + +/* + * WARNING: This file is auto-derived from the mldsa-native source file + * dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_extract_bytes_mve.S using scripts/simpasm. Do not modify it directly. + */ + +.thumb +.syntax unified + +.text +.balign 4 +.global MLD_ASM_NAMESPACE(keccak_f1600_x1_state_extract_bytes_asm) +MLD_ASM_FN_SYMBOL(keccak_f1600_x1_state_extract_bytes_asm) + + .cfi_startproc + cmp r3, #0x0 + beq.w Lmld_keccak_f1600_x1_state_extract_bytes_mve_exit @ imm = #0x1c2 + push.w {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr} + .cfi_adjust_cfa_offset 0x28 + .cfi_rel_offset r4, 0x0 + .cfi_rel_offset r5, 0x4 + .cfi_rel_offset r6, 0x8 + .cfi_rel_offset r7, 0xc + .cfi_rel_offset r8, 0x10 + .cfi_rel_offset r9, 0x14 + .cfi_rel_offset r10, 0x18 + .cfi_rel_offset r11, 0x1c + .cfi_rel_offset lr, 0x24 + mov.w r6, #0x4 + mov.w r7, #0x10 + and r5, r2, #0xf + bic r9, r2, #0xf + add r0, r9 + cmp r5, #0x0 + beq.w Lmld_keccak_f1600_x1_state_extract_bytes_mve_pre_main @ imm = #0x9e + subs r1, r1, r5 + rsb.w lr, r5, #0x10 + cmp r3, lr + it ls + movls lr, r3 + subs.w r3, r3, lr + vldrw.u32 q0, [r0], #16 + movw r4, #0xf0f + vmsr p0, r4 + vrev32.16 q1, q0 + vrev64.32 q2, q1 + vrev64.32 q3, q0 + vpsel q0, q0, q2 + vpsel q1, q3, q1 + vsli.32 q0, q0, #0x8 + vsli.16 q0, q0, #0x4 + vsli.8 q0, q0, #0x1 + vqdmulh.s8 q2, q0, r7 + vsli.8 q0, q2, #0x4 + vqdmulh.s8 q2, q0, r6 + vsli.8 q0, q2, #0x6 + vsli.32 q1, q1, #0x8 + vsli.16 q1, q1, #0x4 + vsli.8 q1, q1, #0x1 + vqdmulh.s8 q2, q1, r7 + vsli.8 q1, q2, #0x4 + vqdmulh.s8 q2, q1, r6 + vsli.8 q1, q2, #0x6 + mov.w r4, #0x55 + vdup.8 q2, r4 + vand q0, q0, q2 + vand q1, q1, q2 + vshl.i32 q1, q1, #0x1 + vorr q0, q1, q0 + vctp.8 lr + vmrs r11, p0 + lsl.w r11, r11, r5 + vmsr p0, r11 + vpst + vstrbt.8 q0, [r1], #16 + cmp r3, #0x0 + beq.w Lmld_keccak_f1600_x1_state_extract_bytes_mve_restore @ imm = #0x104 + +Lmld_keccak_f1600_x1_state_extract_bytes_mve_pre_main: + lsr.w lr, r3, #0x4 + wls lr, lr, Lmld_keccak_f1600_x1_state_extract_bytes_mve_main_loop_end @ imm = #0x78 + +Lmld_keccak_f1600_x1_state_extract_bytes_mve_slothy_prepare: + vldrw.u32 q0, [r0], #16 + movw r4, #0xf0f + vmsr p0, r4 + vrev32.16 q1, q0 + vrev64.32 q2, q1 + vrev64.32 q3, q0 + vpsel q0, q0, q2 + vpsel q1, q3, q1 + +Lmld_keccak_f1600_x1_state_extract_bytes_mve_slothy_start: + vsli.32 q0, q0, #0x8 + vsli.16 q0, q0, #0x4 + vsli.8 q0, q0, #0x1 + vqdmulh.s8 q3, q0, r7 + vsli.8 q0, q3, #0x4 + vqdmulh.s8 q2, q0, r6 + vsli.32 q1, q1, #0x8 + vsli.8 q0, q2, #0x6 + vsli.16 q1, q1, #0x4 + vsli.8 q1, q1, #0x1 + vqdmulh.s8 q3, q1, r7 + vsli.8 q1, q3, #0x4 + vqdmulh.s8 q3, q1, r6 + vsli.8 q1, q3, #0x6 + mov.w r2, #0x55 + vdup.8 q3, r2 + vand q2, q0, q3 + vand q3, q1, q3 + vshl.i32 q1, q3, #0x1 + vorr q0, q1, q2 + vstrb.8 q0, [r1], #16 + +Lmld_keccak_f1600_x1_state_extract_bytes_mve_slothy_end: + le lr, Lmld_keccak_f1600_x1_state_extract_bytes_mve_slothy_prepare @ imm = #-0x78 + +Lmld_keccak_f1600_x1_state_extract_bytes_mve_main_loop_end: + ands r3, r3, #0xf + beq.w Lmld_keccak_f1600_x1_state_extract_bytes_mve_restore @ imm = #0x7c + vldrw.u32 q0, [r0] + movw r4, #0xf0f + vmsr p0, r4 + vrev32.16 q1, q0 + vrev64.32 q2, q1 + vrev64.32 q3, q0 + vpsel q0, q0, q2 + vpsel q1, q3, q1 + vsli.32 q0, q0, #0x8 + vsli.16 q0, q0, #0x4 + vsli.8 q0, q0, #0x1 + vqdmulh.s8 q2, q0, r7 + vsli.8 q0, q2, #0x4 + vqdmulh.s8 q2, q0, r6 + vsli.8 q0, q2, #0x6 + vsli.32 q1, q1, #0x8 + vsli.16 q1, q1, #0x4 + vsli.8 q1, q1, #0x1 + vqdmulh.s8 q2, q1, r7 + vsli.8 q1, q2, #0x4 + vqdmulh.s8 q2, q1, r6 + vsli.8 q1, q2, #0x6 + mov.w r4, #0x55 + vdup.8 q2, r4 + vand q0, q0, q2 + vand q1, q1, q2 + vshl.i32 q1, q1, #0x1 + vorr q0, q1, q0 + vctp.8 r3 + vpst + vstrbt.8 q0, [r1], #16 + +Lmld_keccak_f1600_x1_state_extract_bytes_mve_restore: + pop.w {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr} + .cfi_restore r4 + .cfi_restore r5 + .cfi_restore r6 + .cfi_restore r7 + .cfi_restore r8 + .cfi_restore r9 + .cfi_restore r10 + .cfi_restore r11 + .cfi_restore lr + .cfi_adjust_cfa_offset -0x28 + +Lmld_keccak_f1600_x1_state_extract_bytes_mve_exit: + bx lr + .cfi_endproc + nop + +MLD_ASM_FN_SIZE(keccak_f1600_x1_state_extract_bytes_asm) + +#endif /* MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED && \ + __ARM_FEATURE_MVE */ + +#if defined(__ELF__) +.section .note.GNU-stack,"",%progbits +#endif diff --git a/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_state_xor_bytes_armv7m.S b/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_state_xor_bytes_armv7m.S new file mode 100644 index 0000000000..3bdff9df79 --- /dev/null +++ b/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_state_xor_bytes_armv7m.S @@ -0,0 +1,283 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* + * This helper is derived from the public-domain XKCP implementation and the + * Armv7-M optimizations described in [ADOMNICAI23]. See the backend README, + * BIBLIOGRAPHY, and LICENSE files for full provenance and license terms. + */ + +/*yaml + Name: keccak_f1600_x1_state_xor_bytes_scalar_asm + Description: Scalar fallback for XORing bytes into the final x1 Keccak state lane pair + Signature: void mld_keccak_f1600_x1_state_xor_bytes_scalar_asm(void *state, const uint8_t *data, unsigned offset, unsigned length) + ABI: + Architecture: armv81m + CallingConvention: AAPCS32 + Features: [] + r0: + type: buffer + size_bytes: 200 + permissions: read/write + c_parameter: void *state + description: Bit-interleaved x1 Keccak state + r1: + type: buffer + size_bytes: r3 + permissions: read-only + c_parameter: const uint8_t *data + description: Bytes to XOR into the state + r2: + type: scalar + c_parameter: unsigned offset + description: Byte offset within the 200-byte state + test_with: 7 + r3: + type: scalar + c_parameter: unsigned length + description: Number of input bytes + test_with: 9 + Stack: + bytes: 32 + description: register preservation (24) plus one temporary lane (8) +*/ + +/* + * AAPCS32 contract: preserves r4-r11 and sp. The caller-saved r0-r3, r12, + * APSR condition flags, and lr may be clobbered. No floating-point or MVE + * registers are accessed. This is the private fallback for the MVE helper's + * final eight-byte state lane. + */ + +#include "../../../../common.h" + +#if defined(MLD_FIPS202_ARMV81M_NEED_X1) && \ + !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) + +/* + * WARNING: This file is auto-derived from the mldsa-native source file + * dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_xor_bytes_armv7m.S using scripts/simpasm. Do not modify it directly. + */ + +.thumb +.syntax unified + +.text +.balign 4 +.global MLD_ASM_NAMESPACE(keccak_f1600_x1_state_xor_bytes_scalar_asm) +MLD_ASM_FN_SYMBOL(keccak_f1600_x1_state_xor_bytes_scalar_asm) + + .cfi_startproc + cmp r3, #0x0 + beq.w Lmld_keccak_f1600_x1_state_xor_bytes_scalar_exit @ imm = #0x254 + push.w {r4, r5, r6, r7, r8, lr} + .cfi_adjust_cfa_offset 0x18 + .cfi_rel_offset r4, 0x0 + .cfi_rel_offset r5, 0x4 + .cfi_rel_offset r6, 0x8 + .cfi_rel_offset r7, 0xc + .cfi_rel_offset r8, 0x10 + .cfi_rel_offset lr, 0x14 + bic r4, r2, #0x7 + adds r0, r0, r4 + ands r2, r2, #0x7 + beq.w Lmld_keccak_f1600_x1_state_xor_bytes_scalar_check_lanes @ imm = #0xcc + movs r4, r3 + rsb.w r5, r2, #0x8 + cmp r4, r5 + ble Lmld_keccak_f1600_x1_state_xor_bytes_scalar_align @ imm = #0x0 + movs r4, r5 + +Lmld_keccak_f1600_x1_state_xor_bytes_scalar_align: + sub.w r8, r3, r4 + movs r3, r4 + movs r4, #0x0 + movs r5, #0x0 + sub sp, #0x8 + .cfi_adjust_cfa_offset 0x8 + strd r4, r5, [sp] + add r2, sp, r2 + +Lmld_keccak_f1600_x1_state_xor_bytes_scalar_in_lane_loop_first: + ldrb r5, [r1], #1 + strb r5, [r2], #1 + subs r3, #0x1 + bne Lmld_keccak_f1600_x1_state_xor_bytes_scalar_in_lane_loop_first @ imm = #-0xe + ldrd r4, r5, [sp] + add sp, #0x8 + .cfi_adjust_cfa_offset -0x8 + ldrd r6, r7, [r0] + and r3, r4, #0x55555555 + orr.w r3, r3, r3, lsr #1 + and r3, r3, #0x33333333 + orr.w r3, r3, r3, lsr #2 + and r3, r3, #0xf0f0f0f + orr.w r3, r3, r3, lsr #4 + and r3, r3, #0xff00ff + bfi r3, r3, #8, #8 + eor.w r6, r6, r3, lsr #8 + and r3, r5, #0x55555555 + orr.w r3, r3, r3, lsr #1 + and r3, r3, #0x33333333 + orr.w r3, r3, r3, lsr #2 + and r3, r3, #0xf0f0f0f + orr.w r3, r3, r3, lsr #4 + and r3, r3, #0xff00ff + orr.w r3, r3, r3, lsr #8 + eor.w r6, r6, r3, lsl #16 + and r3, r4, #0xaaaaaaaa + orr.w r3, r3, r3, lsl #1 + and r3, r3, #0xcccccccc + orr.w r3, r3, r3, lsl #2 + and r3, r3, #0xf0f0f0f0 + orr.w r3, r3, r3, lsl #4 + and r3, r3, #0xff00ff00 + orr.w r3, r3, r3, lsl #8 + eor.w r7, r7, r3, lsr #16 + and r3, r5, #0xaaaaaaaa + orr.w r3, r3, r3, lsl #1 + and r3, r3, #0xcccccccc + orr.w r3, r3, r3, lsl #2 + and r3, r3, #0xf0f0f0f0 + orr.w r3, r3, r3, lsl #4 + and r3, r3, #0xff00ff00 + orr.w r3, r3, r3, lsl #8 + bfc r3, #0, #16 + eors r7, r3 + strd r6, r7, [r0], #8 + mov r3, r8 + +Lmld_keccak_f1600_x1_state_xor_bytes_scalar_check_lanes: + lsrs r2, r3, #0x3 + beq.w Lmld_keccak_f1600_x1_state_xor_bytes_scalar_tail @ imm = #0xac + mov r8, r3 + +Lmld_keccak_f1600_x1_state_xor_bytes_scalar_lanes_loop: + ldr r4, [r1], #4 + ldr r5, [r1], #4 + ldrd r6, r7, [r0] + and r3, r4, #0x55555555 + orr.w r3, r3, r3, lsr #1 + and r3, r3, #0x33333333 + orr.w r3, r3, r3, lsr #2 + and r3, r3, #0xf0f0f0f + orr.w r3, r3, r3, lsr #4 + and r3, r3, #0xff00ff + bfi r3, r3, #8, #8 + eor.w r6, r6, r3, lsr #8 + and r3, r5, #0x55555555 + orr.w r3, r3, r3, lsr #1 + and r3, r3, #0x33333333 + orr.w r3, r3, r3, lsr #2 + and r3, r3, #0xf0f0f0f + orr.w r3, r3, r3, lsr #4 + and r3, r3, #0xff00ff + orr.w r3, r3, r3, lsr #8 + eor.w r6, r6, r3, lsl #16 + and r3, r4, #0xaaaaaaaa + orr.w r3, r3, r3, lsl #1 + and r3, r3, #0xcccccccc + orr.w r3, r3, r3, lsl #2 + and r3, r3, #0xf0f0f0f0 + orr.w r3, r3, r3, lsl #4 + and r3, r3, #0xff00ff00 + orr.w r3, r3, r3, lsl #8 + eor.w r7, r7, r3, lsr #16 + and r3, r5, #0xaaaaaaaa + orr.w r3, r3, r3, lsl #1 + and r3, r3, #0xcccccccc + orr.w r3, r3, r3, lsl #2 + and r3, r3, #0xf0f0f0f0 + orr.w r3, r3, r3, lsl #4 + and r3, r3, #0xff00ff00 + orr.w r3, r3, r3, lsl #8 + bfc r3, #0, #16 + eors r7, r3 + strd r6, r7, [r0], #8 + subs r2, #0x1 + bne Lmld_keccak_f1600_x1_state_xor_bytes_scalar_lanes_loop @ imm = #-0xa8 + and r3, r8, #0x7 + +Lmld_keccak_f1600_x1_state_xor_bytes_scalar_tail: + cmp r3, #0x0 + beq.w Lmld_keccak_f1600_x1_state_xor_bytes_scalar_restore @ imm = #0xba + movs r2, #0x0 + movs r4, #0x0 + movs r5, #0x0 + sub sp, #0x8 + .cfi_adjust_cfa_offset 0x8 + strd r4, r5, [sp] + add r2, sp, r2 + +Lmld_keccak_f1600_x1_state_xor_bytes_scalar_in_lane_loop_tail: + ldrb r5, [r1], #1 + strb r5, [r2], #1 + subs r3, #0x1 + bne Lmld_keccak_f1600_x1_state_xor_bytes_scalar_in_lane_loop_tail @ imm = #-0xe + ldrd r4, r5, [sp] + add sp, #0x8 + .cfi_adjust_cfa_offset -0x8 + ldrd r6, r7, [r0] + and r3, r4, #0x55555555 + orr.w r3, r3, r3, lsr #1 + and r3, r3, #0x33333333 + orr.w r3, r3, r3, lsr #2 + and r3, r3, #0xf0f0f0f + orr.w r3, r3, r3, lsr #4 + and r3, r3, #0xff00ff + bfi r3, r3, #8, #8 + eor.w r6, r6, r3, lsr #8 + and r3, r5, #0x55555555 + orr.w r3, r3, r3, lsr #1 + and r3, r3, #0x33333333 + orr.w r3, r3, r3, lsr #2 + and r3, r3, #0xf0f0f0f + orr.w r3, r3, r3, lsr #4 + and r3, r3, #0xff00ff + orr.w r3, r3, r3, lsr #8 + eor.w r6, r6, r3, lsl #16 + and r3, r4, #0xaaaaaaaa + orr.w r3, r3, r3, lsl #1 + and r3, r3, #0xcccccccc + orr.w r3, r3, r3, lsl #2 + and r3, r3, #0xf0f0f0f0 + orr.w r3, r3, r3, lsl #4 + and r3, r3, #0xff00ff00 + orr.w r3, r3, r3, lsl #8 + eor.w r7, r7, r3, lsr #16 + and r3, r5, #0xaaaaaaaa + orr.w r3, r3, r3, lsl #1 + and r3, r3, #0xcccccccc + orr.w r3, r3, r3, lsl #2 + and r3, r3, #0xf0f0f0f0 + orr.w r3, r3, r3, lsl #4 + and r3, r3, #0xff00ff00 + orr.w r3, r3, r3, lsl #8 + bfc r3, #0, #16 + eors r7, r3 + strd r6, r7, [r0], #8 + +Lmld_keccak_f1600_x1_state_xor_bytes_scalar_restore: + pop.w {r4, r5, r6, r7, r8, lr} + .cfi_restore r4 + .cfi_restore r5 + .cfi_restore r6 + .cfi_restore r7 + .cfi_restore r8 + .cfi_restore lr + .cfi_adjust_cfa_offset -0x18 + +Lmld_keccak_f1600_x1_state_xor_bytes_scalar_exit: + bx lr + .cfi_endproc + +MLD_ASM_FN_SIZE(keccak_f1600_x1_state_xor_bytes_scalar_asm) + +#endif /* MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */ + +#if defined(__ELF__) +.section .note.GNU-stack,"",%progbits +#endif diff --git a/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_state_xor_bytes_mve.S b/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_state_xor_bytes_mve.S new file mode 100644 index 0000000000..f4683af2b9 --- /dev/null +++ b/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_state_xor_bytes_mve.S @@ -0,0 +1,249 @@ +/* + * Copyright (c) The mlkem-native project authors + * Copyright (c) The mldsa-native project authors + * Copyright (c) 2026 Arm Limited + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* + * This helper is adapted from the Armv8.1-M MVE x1 byte-operation work in + * mlkem-native. It converts two adjacent Keccak lanes at once between bytes + * and the bit-interleaved x1 representation. + */ + +/*yaml + Name: keccak_f1600_x1_state_xor_bytes_asm + Description: Armv8.1-M MVE fast path for XORing bytes into an x1 bit-interleaved Keccak state + Signature: void mld_keccak_f1600_x1_state_xor_bytes_asm(void *state, const uint8_t *data, unsigned offset, unsigned length) + ABI: + Architecture: armv81m + CallingConvention: AAPCS32 + Features: [MVE] + r0: + type: buffer + size_bytes: 200 + permissions: read/write + c_parameter: void *state + description: Bit-interleaved x1 Keccak state, naturally aligned for 32-bit MVE state accesses + r1: + type: buffer + size_bytes: r3 + permissions: read-only + c_parameter: const uint8_t *data + description: Arbitrarily byte-aligned input bytes to XOR into the state + r2: + type: scalar + c_parameter: unsigned offset + description: Byte offset within the first 192 state bytes; the C wrapper dispatches final-lane ranges to the scalar helper + test_with: 7 + r3: + type: scalar + c_parameter: unsigned length + description: Number of input bytes such that offset plus length is at most 192 + test_with: 9 + Stack: + bytes: 40 + description: AAPCS32 preservation of r4-r11 and lr; the MVE fast path uses only caller-saved q0-q3 and p0 +*/ + +/* + * AAPCS32 contract: preserves r4-r11, sp, and d8-d15/q4-q7. The caller-saved + * r0-r3, r12, lr, APSR condition flags, q0-q3, and p0 may be clobbered. + * The MVE fast path covers only byte ranges ending at or before state byte + * 192, so each 16-byte state vector access remains within the 200-byte state. + * The C wrapper dispatches ranges touching the final eight-byte lane to the + * scalar helper. + */ + +#include "../../../../common.h" + +#if defined(MLD_FIPS202_ARMV81M_NEED_X1) && !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED) && defined(__ARM_FEATURE_MVE) + +/* + * WARNING: This file is auto-derived from the mldsa-native source file + * dev/fips202/armv81m_opt/src/keccak_f1600_x1_state_xor_bytes_mve.S using scripts/simpasm. Do not modify it directly. + */ + +.thumb +.syntax unified + +.text +.balign 4 +.global MLD_ASM_NAMESPACE(keccak_f1600_x1_state_xor_bytes_asm) +MLD_ASM_FN_SYMBOL(keccak_f1600_x1_state_xor_bytes_asm) + + .cfi_startproc + cmp r3, #0x0 + beq.w Lmld_keccak_f1600_x1_state_xor_bytes_mve_exit @ imm = #0x1f2 + push.w {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr} + .cfi_adjust_cfa_offset 0x28 + .cfi_rel_offset r4, 0x0 + .cfi_rel_offset r5, 0x4 + .cfi_rel_offset r6, 0x8 + .cfi_rel_offset r7, 0xc + .cfi_rel_offset r8, 0x10 + .cfi_rel_offset r9, 0x14 + .cfi_rel_offset r10, 0x18 + .cfi_rel_offset r11, 0x1c + .cfi_rel_offset lr, 0x24 + mov.w r8, #0x8 + mov.w r9, #0x10 + mov.w r10, #0x20 + mov.w r11, #0x80 + mov.w r12, #0x8000 + and r5, r2, #0xf + bic r6, r2, #0xf + add r0, r6 + cmp r5, #0x0 + beq.w Lmld_keccak_f1600_x1_state_xor_bytes_mve_pre_main @ imm = #0xaa + subs r1, r1, r5 + rsb.w lr, r5, #0x10 + cmp r3, lr + it ls + movls lr, r3 + subs.w r3, r3, lr + vctp.8 lr + vmrs r4, p0 + lsl.w r4, r4, r5 + vmsr p0, r4 + vpst + vldrbt.u8 q0, [r1], #16 + vshr.u32 q1, q0, #0x1 + vqdmulh.s8 q2, q1, r10 + vsli.8 q1, q2, #0x1 + vqdmulh.s8 q2, q1, r9 + vsli.8 q1, q2, #0x2 + vqdmulh.s8 q2, q1, r8 + vsli.8 q1, q2, #0x3 + vqdmulh.s16 q2, q1, r11 + vsli.8 q1, q2, #0x4 + vqdmulh.s32 q2, q1, r12 + vsli.16 q1, q2, #0x8 + vrev64.32 q2, q1 + vsli.32 q2, q1, #0x10 + vqdmulh.s8 q3, q0, r10 + vsli.8 q0, q3, #0x1 + vqdmulh.s8 q3, q0, r9 + vsli.8 q0, q3, #0x2 + vqdmulh.s8 q3, q0, r8 + vsli.8 q0, q3, #0x3 + vqdmulh.s16 q3, q0, r11 + vsli.8 q0, q3, #0x4 + vqdmulh.s32 q3, q0, r12 + vsli.16 q0, q3, #0x8 + vrev64.32 q3, q0 + vsli.32 q0, q3, #0x10 + movw r4, #0xf0f + vmsr p0, r4 + vpsel q0, q0, q2 + vldrw.u32 q1, [r0] + veor q1, q1, q0 + vstrw.32 q1, [r0], #16 + cmp r3, #0x0 + beq.w Lmld_keccak_f1600_x1_state_xor_bytes_mve_restore @ imm = #0x11c + +Lmld_keccak_f1600_x1_state_xor_bytes_mve_pre_main: + lsr.w lr, r3, #0x4 + wls lr, lr, Lmld_keccak_f1600_x1_state_xor_bytes_mve_main_loop_end @ imm = #0x84 + +Lmld_keccak_f1600_x1_state_xor_bytes_mve_slothy_start: + vldrb.u8 q0, [r1], #16 + vshr.u32 q3, q0, #0x1 + vqdmulh.s8 q2, q3, r10 + vsli.8 q3, q2, #0x1 + vqdmulh.s8 q2, q3, r9 + vsli.8 q3, q2, #0x2 + vqdmulh.s8 q2, q3, r8 + vsli.8 q3, q2, #0x3 + vqdmulh.s16 q2, q3, r11 + vsli.8 q3, q2, #0x4 + vqdmulh.s32 q2, q3, r12 + vsli.16 q3, q2, #0x8 + vqdmulh.s8 q1, q0, r10 + vrev64.32 q2, q3 + vsli.8 q0, q1, #0x1 + vsli.32 q2, q3, #0x10 + vqdmulh.s8 q3, q0, r9 + vsli.8 q0, q3, #0x2 + vqdmulh.s8 q3, q0, r8 + vsli.8 q0, q3, #0x3 + vqdmulh.s16 q3, q0, r11 + vsli.8 q0, q3, #0x4 + vqdmulh.s32 q3, q0, r12 + vsli.16 q0, q3, #0x8 + vrev64.32 q3, q0 + vsli.32 q0, q3, #0x10 + +Lmld_keccak_f1600_x1_state_xor_bytes_mve_slothy_end: + movw r4, #0xf0f + vmsr p0, r4 + vpsel q0, q0, q2 + vldrw.u32 q1, [r0] + veor q1, q1, q0 + vstrw.32 q1, [r0], #16 + le lr, Lmld_keccak_f1600_x1_state_xor_bytes_mve_slothy_start @ imm = #-0x84 + +Lmld_keccak_f1600_x1_state_xor_bytes_mve_main_loop_end: + ands r3, r3, #0xf + beq.w Lmld_keccak_f1600_x1_state_xor_bytes_mve_restore @ imm = #0x88 + vctp.8 r3 + vpst + vldrbt.u8 q0, [r1], #16 + vshr.u32 q1, q0, #0x1 + vqdmulh.s8 q2, q1, r10 + vsli.8 q1, q2, #0x1 + vqdmulh.s8 q2, q1, r9 + vsli.8 q1, q2, #0x2 + vqdmulh.s8 q2, q1, r8 + vsli.8 q1, q2, #0x3 + vqdmulh.s16 q2, q1, r11 + vsli.8 q1, q2, #0x4 + vqdmulh.s32 q2, q1, r12 + vsli.16 q1, q2, #0x8 + vrev64.32 q2, q1 + vsli.32 q2, q1, #0x10 + vqdmulh.s8 q3, q0, r10 + vsli.8 q0, q3, #0x1 + vqdmulh.s8 q3, q0, r9 + vsli.8 q0, q3, #0x2 + vqdmulh.s8 q3, q0, r8 + vsli.8 q0, q3, #0x3 + vqdmulh.s16 q3, q0, r11 + vsli.8 q0, q3, #0x4 + vqdmulh.s32 q3, q0, r12 + vsli.16 q0, q3, #0x8 + vrev64.32 q3, q0 + vsli.32 q0, q3, #0x10 + movw r4, #0xf0f + vmsr p0, r4 + vpsel q0, q0, q2 + vldrw.u32 q1, [r0] + veor q1, q1, q0 + vstrw.32 q1, [r0] + +Lmld_keccak_f1600_x1_state_xor_bytes_mve_restore: + pop.w {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr} + .cfi_restore r4 + .cfi_restore r5 + .cfi_restore r6 + .cfi_restore r7 + .cfi_restore r8 + .cfi_restore r9 + .cfi_restore r10 + .cfi_restore r11 + .cfi_restore lr + .cfi_adjust_cfa_offset -0x28 + +Lmld_keccak_f1600_x1_state_xor_bytes_mve_exit: + bx lr + .cfi_endproc + nop + +MLD_ASM_FN_SIZE(keccak_f1600_x1_state_xor_bytes_asm) + +#endif /* MLD_FIPS202_ARMV81M_NEED_X1 && !MLD_CONFIG_MULTILEVEL_NO_SHARED && \ + __ARM_FEATURE_MVE */ + +#if defined(__ELF__) +.section .note.GNU-stack,"",%progbits +#endif diff --git a/nix/slothy/default.nix b/nix/slothy/default.nix index fa0be40f5f..37ca2a0fa4 100644 --- a/nix/slothy/default.nix +++ b/nix/slothy/default.nix @@ -12,11 +12,12 @@ # pkgs.slothy pkgs.slothy.overrideAttrs (old: rec { - version = "0.2.2"; + # slothy-optimizer/slothy#464: Cortex-M55 shifted-source latency model. + version = "fed47d3f1e40b9c1f202f759f1d6c4100fe14f4d"; src = pkgs.fetchFromGitHub { owner = "slothy-optimizer"; repo = "slothy"; rev = version; - sha256 = "sha256-pyES6ithBVAFSVdjsM61kp6eeEUxNsLs7jdekpX+YuA="; + sha256 = "sha256-x8bioD4mKxu5YxOpL4yuLV3tIJG6fCD+gsOvrJ/1P24="; }; }) diff --git a/scripts/autogen b/scripts/autogen index bc92f4d1ec..4e1bf2ffb3 100755 --- a/scripts/autogen +++ b/scripts/autogen @@ -1963,6 +1963,10 @@ def native_fips202_armv81m(c): return native_fips202(c) and armv81m(c) +def native_fips202_armv81m_x1(c): + return native_fips202_armv81m(c) and "keccak_f1600_x1_" in c + + def native_fips202_core(c): return ( native_fips202(c) @@ -2184,7 +2188,14 @@ def gen_monolithic_source_file(): yield f'#include "{c}"' yield "#endif" yield "#if defined(MLD_SYS_ARMV81M_MVE)" - for c in filter(native_fips202_armv81m, c_sources): + for c in filter( + lambda c: native_fips202_armv81m(c) and not native_fips202_armv81m_x1(c), + c_sources, + ): + yield f'#include "{c}"' + yield "#endif" + yield "#if defined(MLD_SYS_ARMV81M_MVE)" + for c in filter(native_fips202_armv81m_x1, c_sources): yield f'#include "{c}"' yield "#endif" yield "#endif" @@ -2267,7 +2278,14 @@ def gen_monolithic_asm_file(): yield f'#include "{c}"' yield "#endif" yield "#if defined(MLD_SYS_ARMV81M_MVE)" - for c in filter(native_fips202_armv81m, asm_sources): + for c in filter( + lambda c: native_fips202_armv81m(c) and not native_fips202_armv81m_x1(c), + asm_sources, + ): + yield f'#include "{c}"' + yield "#endif" + yield "#if defined(MLD_SYS_ARMV81M_MVE)" + for c in filter(native_fips202_armv81m_x1, asm_sources): yield f'#include "{c}"' yield "#endif" yield "#endif" @@ -2760,6 +2778,8 @@ def upstream_src_dir_for_dev_dir(dev_dir): if dev_dir.startswith("dev/fips202/"): # dev/fips202//src -> mldsa/src/fips202/native//src arch = dev_dir.split("/")[2] + if arch in ("armv81m_clean", "armv81m_opt"): + arch = "armv81m" return f"mldsa/src/fips202/native/{arch}/src" if dev_dir.startswith("dev/aarch64_"): # dev/aarch64_opt/src and dev/aarch64_clean/src map to the same tree @@ -3102,7 +3122,13 @@ def synchronize_file(f, in_dir, out_dir, delete=False, no_simplify=False, **kwar return basename -def synchronize_backend(in_dir, out_dir, delete=False, no_simplify=False, **kwargs): +def synchronize_backend( + in_dir, + out_dir, + delete=False, + no_simplify=False, + **kwargs, +): copied = [] files = get_files(os.path.join(in_dir, "*")) @@ -3119,18 +3145,59 @@ def synchronize_backend(in_dir, out_dir, delete=False, no_simplify=False, **kwar ) copied = [r for r in pool_results if r is not None] + if delete is True: + # Check for files in the target directory that have not been copied. + for f in get_files(os.path.join(out_dir, "*")): + if os.path.basename(f) in copied: + continue + if not f.endswith(SYNCHRONIZED_EXTENSIONS): + continue + # Otherwise, remove it. + update_via_remove(f) + + return copied + + +def synchronize_merged_backends( + in_dirs, + out_dir, + delete=False, + no_simplify=False, + **kwargs, +): + """Synchronize multiple development directories into one production tree. + + The Armv8.1-M production directory combines the established x4 backend and + the separately maintained x1 backend. Derive the retained filename set from + both source directories so adding, renaming, or removing a source cannot + leave stale generated files or require a hard-coded keep list. + """ + copied_by_basename = {} + + for in_dir in in_dirs: + copied = synchronize_backend( + in_dir, + out_dir, + delete=False, + no_simplify=no_simplify, + **kwargs, + ) + for basename in copied: + if basename in copied_by_basename: + raise ValueError( + f"Duplicate synchronized filename {basename!r} in " + f"{copied_by_basename[basename]!r} and {in_dir!r}" + ) + copied_by_basename[basename] = in_dir if delete is False: return - # Check for files in the target directory that have not been copied for f in get_files(os.path.join(out_dir, "*")): - if os.path.basename(f) in copied: - continue if not f.endswith(SYNCHRONIZED_EXTENSIONS): continue - # Otherwise, remove it - update_via_remove(f) + if os.path.basename(f) not in copied_by_basename: + update_via_remove(f) def synchronize_backends( @@ -3229,13 +3296,13 @@ def synchronize_backends( x86_64_syntax=x86_64_syntax, cflags="-Idev/fips202/x86_64 -Imldsa/src/fips202/native/x86_64 -mavx2 -mbmi2 -msse4 -fcf-protection=none", ) - synchronize_backend( - "dev/fips202/armv81m/src", + synchronize_merged_backends( + ("dev/fips202/armv81m/src", "dev/fips202/armv81m_opt/src"), "mldsa/src/fips202/native/armv81m/src", delete=delete, force_cross=force_cross, no_simplify=no_simplify, - cflags="-Idev/fips202/armv81m/src -Imldsa/src/fips202/native/armv81m/src -march=armv8.1-m.main+mve -mthumb", + cflags="-Idev/fips202/armv81m/src -Idev/fips202/armv81m_opt/src -Imldsa/src/fips202/native/armv81m/src -march=armv8.1-m.main+mve -mthumb", ) synchronize_backend( "dev/fips202/armv81m", @@ -3405,7 +3472,14 @@ def gen_slothy(funcs): return for func in funcs: - if func.startswith("keccak"): + if func in ( + "keccak_f1600_x1_armv7m_opt_m55", + "keccak_f1600_x1_state_xor_bytes_mve", + "keccak_f1600_x1_state_extract_bytes_mve", + ): + base = "dev/fips202/armv81m_opt/src" + t = func + ".S" + elif func.startswith("keccak"): # FIPS202 assembly is already self-identifying via its `keccak_` # name and carries no `mldsa_` prefix. base = "dev/fips202/aarch64/src" @@ -4460,6 +4534,42 @@ def resolve_buffer_size(reg_info, abi_data): raise ValueError(f"Cannot resolve buffer size from {reg_info}") +def resolve_buffer_test_bytes(reg_name, reg_info, size_bytes, dev_source): + """Validate and return deterministic byte overrides for a test buffer.""" + test_bytes = reg_info.get("test_bytes") + if test_bytes is None: + return [] + if not isinstance(test_bytes, dict): + raise ValueError( + f"{dev_source}: YAML 'ABI.{reg_name}.test_bytes:' must be a mapping " + f"of byte offsets to byte values, got {type(test_bytes).__name__}" + ) + + result = [] + for offset, value in test_bytes.items(): + if isinstance(offset, bool) or not isinstance(offset, int): + raise ValueError( + f"{dev_source}: YAML 'ABI.{reg_name}.test_bytes:' offset " + f"{offset!r} must be an integer" + ) + if offset < 0 or offset >= size_bytes: + raise ValueError( + f"{dev_source}: YAML 'ABI.{reg_name}.test_bytes:' offset " + f"{offset} is outside the {size_bytes}-byte buffer" + ) + if ( + isinstance(value, bool) + or not isinstance(value, int) + or not 0 <= value <= 0xFF + ): + raise ValueError( + f"{dev_source}: YAML 'ABI.{reg_name}.test_bytes[{offset}]:' " + f"value {value!r} must be an integer in [0, 255]" + ) + result.append((offset, value)) + return sorted(result) + + def gen_abicheck(): """Generate ABI checker tests""" @@ -4467,6 +4577,36 @@ def gen_abicheck(): # HOL-Light proofs (armv81m). Shape matches hol_light_asm_joblist # (basename, dev_dir, _cflags, arch); the cflags slot is unused here. joblist_abicheck_extra = [ + ( + "keccak_f1600_x1_armv7m_opt_m55.S", + "dev/fips202/armv81m_opt/src", + "", + "armv81m", + ), + ( + "keccak_f1600_x1_state_extract_bytes_mve.S", + "dev/fips202/armv81m_opt/src", + "", + "armv81m", + ), + ( + "keccak_f1600_x1_state_extract_bytes_armv7m.S", + "dev/fips202/armv81m_opt/src", + "", + "armv81m", + ), + ( + "keccak_f1600_x1_state_xor_bytes_mve.S", + "dev/fips202/armv81m_opt/src", + "", + "armv81m", + ), + ( + "keccak_f1600_x1_state_xor_bytes_armv7m.S", + "dev/fips202/armv81m_opt/src", + "", + "armv81m", + ), ("keccak_f1600_x4_mve.S", "dev/fips202/armv81m/src", "", "armv81m"), ] joblist = hol_light_asm_joblist() + joblist_abicheck_extra @@ -4586,7 +4726,12 @@ def gen_abicheck(): buffer_name = f"buf_{reg_name}" description = reg_info.get("description", "") yield f" MLD_ALIGN uint8_t {buffer_name}[{size_bytes}]; /* {description} */" - buffer_info.append((reg_name, buffer_name, size_bytes)) + test_bytes = resolve_buffer_test_bytes( + reg_name, reg_info, size_bytes, dev_source + ) + buffer_info.append( + (reg_name, buffer_name, size_bytes, test_bytes) + ) # Emit a runtime mld_sys_check_capability() skip (returning # MLD_ABICHECK_SKIPPED) per Features cap that has a syscap; caps @@ -4614,8 +4759,10 @@ def gen_abicheck(): yield f" {config['init_func']}(&input_state);" yield "" - for reg_name, buffer_name, size_bytes in buffer_info: + for reg_name, buffer_name, size_bytes, test_bytes in buffer_info: yield f" randombytes({buffer_name}, {size_bytes});" + for offset, value in test_bytes: + yield f" {buffer_name}[{offset}] = 0x{value:02x};" yield "" yield " /* Set up register state for function arguments */" @@ -4872,6 +5019,9 @@ def _main(): "rej_uniform_aarch64_asm", "rej_uniform_eta2_aarch64_asm", "rej_uniform_eta4_aarch64_asm", + "keccak_f1600_x1_armv7m_opt_m55", + "keccak_f1600_x1_state_xor_bytes_mve", + "keccak_f1600_x1_state_extract_bytes_mve", ] parser = argparse.ArgumentParser( diff --git a/scripts/tests b/scripts/tests index 6e6f13399f..59a512acb0 100755 --- a/scripts/tests +++ b/scripts/tests @@ -560,6 +560,8 @@ class Tests: log = logger(test_type, scheme_str, self.args.cross_prefix, opt) args = ["make", test_type.make_run_target(scheme)] + if test_type.is_example() is False: + args += [f"OPT={int(opt)}", f"AUTO={int(self.args.auto)}"] if test_type.is_benchmark() is False and test_type.is_example() is False: args += self.make_j() if test_type.make_dir() != "": diff --git a/test/abicheck/README.md b/test/abicheck/README.md index e13fc17ebf..d59a900e77 100644 --- a/test/abicheck/README.md +++ b/test/abicheck/README.md @@ -40,7 +40,9 @@ from a `/*yaml ... */` block in its `dev/` assembly source. `scripts/autogen` turns that into the per-kernel `check_.c`, the `checks__all.h` registry, and the per-arch `abicheck_.mk` (CFLAGS per feature, e.g. `-mavx2`), all included via `abicheck.mk` from `test/mk/components.mk`. Edit the -YAML, not the generated files. +YAML, not the generated files. A buffer's optional `test_bytes` mapping +overrides individual byte offsets after random initialization when the kernel +requires a sentinel or other fixed test input. [^AAPCS32]: Arm Limited: Procedure Call Standard for the Arm Architecture (AAPCS32), [https://github.com/ARM-software/abi-aa/blob/main/aapcs32/aapcs32.rst](https://github.com/ARM-software/abi-aa/blob/main/aapcs32/aapcs32.rst) diff --git a/test/abicheck/abicheck.c b/test/abicheck/abicheck.c index 8b03501939..e3ed632da2 100644 --- a/test/abicheck/abicheck.c +++ b/test/abicheck/abicheck.c @@ -22,12 +22,20 @@ static const abicheck_entry_t all_checks[] = {{NULL, NULL}}; /* Return-code convention: see abicheck_common.h. SKIPPED means the kernel * built but the host lacks the runtime capability; the generated check * decides this via mld_sys_check_capability. */ -int main(void) +/* Zephyr renames main to mld_test_main, making it an ordinary global function + * for which -Wmissing-prototypes requires a prior declaration. Its arguments + * match the Zephyr shim that invokes the renamed entry point. */ +int main(int argc, char **argv); + +int main(int argc, char **argv) { int failed_tests = 0; int selftest_failures; const abicheck_entry_t *entry; + (void)argc; + (void)argv; + /* Meta-test the ABI checker before trusting kernel verdicts (see selftest.h). */ selftest_failures = abicheck_selftest(); diff --git a/test/abicheck/armv81m/abicheck_armv81m.mk b/test/abicheck/armv81m/abicheck_armv81m.mk index 9bae5bf865..af2c00b824 100644 --- a/test/abicheck/armv81m/abicheck_armv81m.mk +++ b/test/abicheck/armv81m/abicheck_armv81m.mk @@ -18,6 +18,8 @@ ABICHECK_REQ_MVE_FILES := # MVE: Armv8.1-M MVE ABICHECK_REQ_MVE_FILES := \ + mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_state_extract_bytes_mve.S \ + mldsa/src/fips202/native/armv81m/src/keccak_f1600_x1_state_xor_bytes_mve.S \ mldsa/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S \ mldsa/src/fips202/native/armv81m/src/keccak_f1600_x4_state_extract_bytes_mve.S \ mldsa/src/fips202/native/armv81m/src/keccak_f1600_x4_state_xor_bytes_mve.S \ diff --git a/test/abicheck/armv81m/checks/check_keccak_f1600_x1_armv7m_asm.c b/test/abicheck/armv81m/checks/check_keccak_f1600_x1_armv7m_asm.c new file mode 100644 index 0000000000..72546fdf50 --- /dev/null +++ b/test/abicheck/armv81m/checks/check_keccak_f1600_x1_armv7m_asm.c @@ -0,0 +1,72 @@ +/* + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* + * WARNING: This file is auto-generated from scripts/autogen + * in the mldsa-native repository. + * Do not modify it directly. + */ + +#include + +#include "../abicheck_armv81m.h" +#include "../checks_armv81m_all.h" + +#if defined(MLD_SYS_ARMV81M_MVE) + +#include "../../../notrandombytes/notrandombytes.h" + +typedef struct armv81m_register_state reg_state; + +void mld_keccak_f1600_x1_armv7m_asm(uint64_t state[25], const uint32_t rc[49]); + +int check_keccak_f1600_x1_armv7m_asm(void) +{ + int test_iter; + reg_state input_state, output_state; + int violations; + MLD_ALIGN uint8_t + buf_r0[200]; /* 8-byte-aligned bit-interleaved x1 state containing + even/odd 32-bit halves for each Keccak lane */ + MLD_ALIGN uint8_t buf_r1[196]; /* 24 bit-interleaved round constants followed + by the 0xff loop terminator */ + + for (test_iter = 0; test_iter < MLD_ABICHECK_NUM_TESTS; test_iter++) + { + /* Initialize random register state */ + init_armv81m_register_state(&input_state); + + randombytes(buf_r0, 200); + randombytes(buf_r1, 196); + buf_r1[192] = 0xff; + buf_r1[193] = 0x00; + buf_r1[194] = 0x00; + buf_r1[195] = 0x00; + + /* Set up register state for function arguments */ + input_state.gpr[0] = (uint32_t)buf_r0; + input_state.gpr[1] = (uint32_t)buf_r1; + + /* Call function through ABI test stub */ + call_stub_armv81m(&input_state, &output_state, + (void (*)(void))mld_keccak_f1600_x1_armv7m_asm); + + /* Check ABI compliance */ + violations = check_armv81m_aapcs32_compliance(&input_state, &output_state, + MLD_ABICHECK_VERBOSE); + if (violations > 0) + { + fprintf(stderr, + "ABI test FAILED for keccak_f1600_x1_armv7m_asm (iteration %d): " + "%d violations\n", + test_iter + 1, violations); + return MLD_ABICHECK_FAILED; + } + } + + return MLD_ABICHECK_PASSED; +} + +#endif /* MLD_SYS_ARMV81M_MVE */ diff --git a/test/abicheck/armv81m/checks/check_keccak_f1600_x1_state_extract_bytes_asm.c b/test/abicheck/armv81m/checks/check_keccak_f1600_x1_state_extract_bytes_asm.c new file mode 100644 index 0000000000..c2e28f7041 --- /dev/null +++ b/test/abicheck/armv81m/checks/check_keccak_f1600_x1_state_extract_bytes_asm.c @@ -0,0 +1,79 @@ +/* + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* + * WARNING: This file is auto-generated from scripts/autogen + * in the mldsa-native repository. + * Do not modify it directly. + */ + +#include + +#include "../abicheck_armv81m.h" +#include "../checks_armv81m_all.h" + +#if defined(MLD_SYS_ARMV81M_MVE) && defined(__ARM_FEATURE_MVE) + +#include "../../../notrandombytes/notrandombytes.h" + +typedef struct armv81m_register_state reg_state; + +void mld_keccak_f1600_x1_state_extract_bytes_asm(void *state, uint8_t *data, + unsigned offset, + unsigned length); + +int check_keccak_f1600_x1_state_extract_bytes_asm(void) +{ + int test_iter; + reg_state input_state, output_state; + int violations; + MLD_ALIGN uint8_t buf_r0[200]; /* Bit-interleaved x1 Keccak state, naturally + aligned for 32-bit MVE state accesses */ + MLD_ALIGN uint8_t buf_r1[9]; /* Arbitrarily byte-aligned output bytes */ + + if (!mld_sys_check_capability(MLD_SYS_CAP_ARMV81M_MVE)) + { + fprintf(stderr, + "ABI check keccak_f1600_x1_state_extract_bytes_asm: host lacks " + "Armv8.1-M MVE, skipping\n"); + return MLD_ABICHECK_SKIPPED; + } + + for (test_iter = 0; test_iter < MLD_ABICHECK_NUM_TESTS; test_iter++) + { + /* Initialize random register state */ + init_armv81m_register_state(&input_state); + + randombytes(buf_r0, 200); + randombytes(buf_r1, 9); + + /* Set up register state for function arguments */ + input_state.gpr[0] = (uint32_t)buf_r0; + input_state.gpr[1] = (uint32_t)buf_r1; + input_state.gpr[2] = 7; + input_state.gpr[3] = 9; + + /* Call function through ABI test stub */ + call_stub_armv81m( + &input_state, &output_state, + (void (*)(void))mld_keccak_f1600_x1_state_extract_bytes_asm); + + /* Check ABI compliance */ + violations = check_armv81m_aapcs32_compliance(&input_state, &output_state, + MLD_ABICHECK_VERBOSE); + if (violations > 0) + { + fprintf(stderr, + "ABI test FAILED for keccak_f1600_x1_state_extract_bytes_asm " + "(iteration %d): %d violations\n", + test_iter + 1, violations); + return MLD_ABICHECK_FAILED; + } + } + + return MLD_ABICHECK_PASSED; +} + +#endif /* MLD_SYS_ARMV81M_MVE && __ARM_FEATURE_MVE */ diff --git a/test/abicheck/armv81m/checks/check_keccak_f1600_x1_state_extract_bytes_scalar_asm.c b/test/abicheck/armv81m/checks/check_keccak_f1600_x1_state_extract_bytes_scalar_asm.c new file mode 100644 index 0000000000..a833836253 --- /dev/null +++ b/test/abicheck/armv81m/checks/check_keccak_f1600_x1_state_extract_bytes_scalar_asm.c @@ -0,0 +1,72 @@ +/* + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* + * WARNING: This file is auto-generated from scripts/autogen + * in the mldsa-native repository. + * Do not modify it directly. + */ + +#include + +#include "../abicheck_armv81m.h" +#include "../checks_armv81m_all.h" + +#if defined(MLD_SYS_ARMV81M_MVE) + +#include "../../../notrandombytes/notrandombytes.h" + +typedef struct armv81m_register_state reg_state; + +void mld_keccak_f1600_x1_state_extract_bytes_scalar_asm(void *state, + uint8_t *data, + unsigned offset, + unsigned length); + +int check_keccak_f1600_x1_state_extract_bytes_scalar_asm(void) +{ + int test_iter; + reg_state input_state, output_state; + int violations; + MLD_ALIGN uint8_t buf_r0[200]; /* Bit-interleaved x1 Keccak state */ + MLD_ALIGN uint8_t buf_r1[9]; /* Output byte buffer */ + + for (test_iter = 0; test_iter < MLD_ABICHECK_NUM_TESTS; test_iter++) + { + /* Initialize random register state */ + init_armv81m_register_state(&input_state); + + randombytes(buf_r0, 200); + randombytes(buf_r1, 9); + + /* Set up register state for function arguments */ + input_state.gpr[0] = (uint32_t)buf_r0; + input_state.gpr[1] = (uint32_t)buf_r1; + input_state.gpr[2] = 7; + input_state.gpr[3] = 9; + + /* Call function through ABI test stub */ + call_stub_armv81m( + &input_state, &output_state, + (void (*)(void))mld_keccak_f1600_x1_state_extract_bytes_scalar_asm); + + /* Check ABI compliance */ + violations = check_armv81m_aapcs32_compliance(&input_state, &output_state, + MLD_ABICHECK_VERBOSE); + if (violations > 0) + { + fprintf( + stderr, + "ABI test FAILED for keccak_f1600_x1_state_extract_bytes_scalar_asm " + "(iteration %d): %d violations\n", + test_iter + 1, violations); + return MLD_ABICHECK_FAILED; + } + } + + return MLD_ABICHECK_PASSED; +} + +#endif /* MLD_SYS_ARMV81M_MVE */ diff --git a/test/abicheck/armv81m/checks/check_keccak_f1600_x1_state_xor_bytes_asm.c b/test/abicheck/armv81m/checks/check_keccak_f1600_x1_state_xor_bytes_asm.c new file mode 100644 index 0000000000..c3f943534e --- /dev/null +++ b/test/abicheck/armv81m/checks/check_keccak_f1600_x1_state_xor_bytes_asm.c @@ -0,0 +1,78 @@ +/* + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* + * WARNING: This file is auto-generated from scripts/autogen + * in the mldsa-native repository. + * Do not modify it directly. + */ + +#include + +#include "../abicheck_armv81m.h" +#include "../checks_armv81m_all.h" + +#if defined(MLD_SYS_ARMV81M_MVE) && defined(__ARM_FEATURE_MVE) + +#include "../../../notrandombytes/notrandombytes.h" + +typedef struct armv81m_register_state reg_state; + +void mld_keccak_f1600_x1_state_xor_bytes_asm(void *state, const uint8_t *data, + unsigned offset, unsigned length); + +int check_keccak_f1600_x1_state_xor_bytes_asm(void) +{ + int test_iter; + reg_state input_state, output_state; + int violations; + MLD_ALIGN uint8_t buf_r0[200]; /* Bit-interleaved x1 Keccak state, naturally + aligned for 32-bit MVE state accesses */ + MLD_ALIGN uint8_t buf_r1[9]; /* Arbitrarily byte-aligned input bytes to XOR + into the state */ + + if (!mld_sys_check_capability(MLD_SYS_CAP_ARMV81M_MVE)) + { + fprintf(stderr, + "ABI check keccak_f1600_x1_state_xor_bytes_asm: host lacks " + "Armv8.1-M MVE, skipping\n"); + return MLD_ABICHECK_SKIPPED; + } + + for (test_iter = 0; test_iter < MLD_ABICHECK_NUM_TESTS; test_iter++) + { + /* Initialize random register state */ + init_armv81m_register_state(&input_state); + + randombytes(buf_r0, 200); + randombytes(buf_r1, 9); + + /* Set up register state for function arguments */ + input_state.gpr[0] = (uint32_t)buf_r0; + input_state.gpr[1] = (uint32_t)buf_r1; + input_state.gpr[2] = 7; + input_state.gpr[3] = 9; + + /* Call function through ABI test stub */ + call_stub_armv81m(&input_state, &output_state, + (void (*)(void))mld_keccak_f1600_x1_state_xor_bytes_asm); + + /* Check ABI compliance */ + violations = check_armv81m_aapcs32_compliance(&input_state, &output_state, + MLD_ABICHECK_VERBOSE); + if (violations > 0) + { + fprintf(stderr, + "ABI test FAILED for keccak_f1600_x1_state_xor_bytes_asm " + "(iteration %d): %d violations\n", + test_iter + 1, violations); + return MLD_ABICHECK_FAILED; + } + } + + return MLD_ABICHECK_PASSED; +} + +#endif /* MLD_SYS_ARMV81M_MVE && __ARM_FEATURE_MVE */ diff --git a/test/abicheck/armv81m/checks/check_keccak_f1600_x1_state_xor_bytes_scalar_asm.c b/test/abicheck/armv81m/checks/check_keccak_f1600_x1_state_xor_bytes_scalar_asm.c new file mode 100644 index 0000000000..b883047a35 --- /dev/null +++ b/test/abicheck/armv81m/checks/check_keccak_f1600_x1_state_xor_bytes_scalar_asm.c @@ -0,0 +1,71 @@ +/* + * Copyright (c) The mldsa-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +/* + * WARNING: This file is auto-generated from scripts/autogen + * in the mldsa-native repository. + * Do not modify it directly. + */ + +#include + +#include "../abicheck_armv81m.h" +#include "../checks_armv81m_all.h" + +#if defined(MLD_SYS_ARMV81M_MVE) + +#include "../../../notrandombytes/notrandombytes.h" + +typedef struct armv81m_register_state reg_state; + +void mld_keccak_f1600_x1_state_xor_bytes_scalar_asm(void *state, + const uint8_t *data, + unsigned offset, + unsigned length); + +int check_keccak_f1600_x1_state_xor_bytes_scalar_asm(void) +{ + int test_iter; + reg_state input_state, output_state; + int violations; + MLD_ALIGN uint8_t buf_r0[200]; /* Bit-interleaved x1 Keccak state */ + MLD_ALIGN uint8_t buf_r1[9]; /* Bytes to XOR into the state */ + + for (test_iter = 0; test_iter < MLD_ABICHECK_NUM_TESTS; test_iter++) + { + /* Initialize random register state */ + init_armv81m_register_state(&input_state); + + randombytes(buf_r0, 200); + randombytes(buf_r1, 9); + + /* Set up register state for function arguments */ + input_state.gpr[0] = (uint32_t)buf_r0; + input_state.gpr[1] = (uint32_t)buf_r1; + input_state.gpr[2] = 7; + input_state.gpr[3] = 9; + + /* Call function through ABI test stub */ + call_stub_armv81m( + &input_state, &output_state, + (void (*)(void))mld_keccak_f1600_x1_state_xor_bytes_scalar_asm); + + /* Check ABI compliance */ + violations = check_armv81m_aapcs32_compliance(&input_state, &output_state, + MLD_ABICHECK_VERBOSE); + if (violations > 0) + { + fprintf(stderr, + "ABI test FAILED for keccak_f1600_x1_state_xor_bytes_scalar_asm " + "(iteration %d): %d violations\n", + test_iter + 1, violations); + return MLD_ABICHECK_FAILED; + } + } + + return MLD_ABICHECK_PASSED; +} + +#endif /* MLD_SYS_ARMV81M_MVE */ diff --git a/test/abicheck/armv81m/checks_armv81m_all.h b/test/abicheck/armv81m/checks_armv81m_all.h index 8711a085ca..c991a8b5c2 100644 --- a/test/abicheck/armv81m/checks_armv81m_all.h +++ b/test/abicheck/armv81m/checks_armv81m_all.h @@ -18,12 +18,30 @@ #if defined(MLD_SYS_ARMV81M_MVE) +int check_keccak_f1600_x1_armv7m_asm(void); +int check_keccak_f1600_x1_state_extract_bytes_scalar_asm(void); #if defined(__ARM_FEATURE_MVE) +int check_keccak_f1600_x1_state_extract_bytes_asm(void); +#endif +int check_keccak_f1600_x1_state_xor_bytes_scalar_asm(void); +#if defined(__ARM_FEATURE_MVE) +int check_keccak_f1600_x1_state_xor_bytes_asm(void); int check_keccak_f1600_x4_mve_asm(void); #endif static const abicheck_entry_t all_checks[] = { + {"keccak_f1600_x1_armv7m_asm", check_keccak_f1600_x1_armv7m_asm}, + {"keccak_f1600_x1_state_extract_bytes_scalar_asm", + check_keccak_f1600_x1_state_extract_bytes_scalar_asm}, +#if defined(__ARM_FEATURE_MVE) + {"keccak_f1600_x1_state_extract_bytes_asm", + check_keccak_f1600_x1_state_extract_bytes_asm}, +#endif + {"keccak_f1600_x1_state_xor_bytes_scalar_asm", + check_keccak_f1600_x1_state_xor_bytes_scalar_asm}, #if defined(__ARM_FEATURE_MVE) + {"keccak_f1600_x1_state_xor_bytes_asm", + check_keccak_f1600_x1_state_xor_bytes_asm}, {"keccak_f1600_x4_mve_asm", check_keccak_f1600_x4_mve_asm}, #endif {NULL, NULL} /* Sentinel */ diff --git a/test/mk/components.mk b/test/mk/components.mk index b61a8185ab..b3dc04526d 100644 --- a/test/mk/components.mk +++ b/test/mk/components.mk @@ -177,16 +177,10 @@ endif # ABI checker ABICHECK_DIR = $(BUILD_DIR)/abicheck -# Map $(ARCH) to the abicheck per-arch subdir name. For most architectures -# the subdir matches $(ARCH); one exception: -# - arm-none-eabi- targets: $(ARCH) = arm (a generic label for the -# bare-metal Cortex-M family). The abicheck subdir is the more specific -# armv81m. -ifeq ($(ARCH),arm) -ABICHECK_ARCH := armv81m -else -ABICHECK_ARCH := $(ARCH) -endif +# A platform can select the ABI independently of make's host/cross ARCH (for +# example, Zephyr owns its target toolchain). Otherwise, use the architecture +# inferred from the compiler prefix. +ABICHECK_ARCH ?= $(ARCH) ABICHECK_SOURCES = test/abicheck/abicheck.c test/abicheck/selftest.c ABICHECK_SOURCES += $(wildcard test/abicheck/$(ABICHECK_ARCH)/abicheck_$(ABICHECK_ARCH).c) @@ -243,6 +237,7 @@ ABICHECK_ASM_CFLAGS := \ -DMLD_FIPS202_AARCH64_NEED_X2_V84A \ -DMLD_FIPS202_AARCH64_NEED_X4_V8A_SCALAR_HYBRID \ -DMLD_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID \ + -DMLD_FIPS202_ARMV81M_NEED_X1 \ -DMLD_FIPS202_ARMV81M_NEED_X4 \ -DMLD_FIPS202_X86_64_NEED_X4_AVX2 @@ -268,4 +263,15 @@ ifneq ($(EXTRA_SOURCES),) $(ABICHECK_EXTRA_OBJS): CFLAGS += $(EXTRA_SOURCES_CFLAGS) endif +ifndef CUSTOM_BUILD $(ABICHECK_DIR)/bin/abicheck: $(ABICHECK_OBJS) $(ABICHECK_EXTRA_OBJS) +else +# Custom builds compile sources through their own build system. Pass the ABI +# checker inputs and flags through the same interface as the other tests, and +# mark this as a standalone checker so the platform does not add libmldsa. +$(ABICHECK_DIR)/bin/abicheck: CUSTOM_BUILD_ABICHECK := 1 +$(ABICHECK_DIR)/bin/abicheck: TEST_SRCS += $(ABICHECK_ALL_SOURCES) +$(ABICHECK_DIR)/bin/abicheck: CFLAGS += \ + $(ABICHECK_ASM_CFLAGS) $(ABICHECK_FULL_API_CFLAGS) +$(ABICHECK_DIR)/bin/abicheck: $(ABICHECK_ALL_SOURCES) $(CUSTOM_BUILD_DEPS) +endif diff --git a/test/mk/rules.mk b/test/mk/rules.mk index 835cbfc326..637fdefb3c 100644 --- a/test/mk/rules.mk +++ b/test/mk/rules.mk @@ -148,9 +148,8 @@ $(BUILD_DIR)/mldsa87/sign_hook/%.S.o: %.S $(CONFIG) $(Q)$(CC) -c -o $@ $(CFLAGS) $< $(BUILD_DIR)/abicheck/bin/%: $(CONFIG) - $(Q)echo " LD $@" $(Q)[ -d $(@D) ] || mkdir -p $(@D) - $(Q)$(LD) $(LDFLAGS) -o $@ $(filter %.o,$^) $(LDLIBS) + $(Q)$(LINK) $(BUILD_DIR)/abicheck/%.c.o: %.c $(CONFIG) $(Q)echo " CC $@" @@ -161,4 +160,3 @@ $(BUILD_DIR)/abicheck/%.S.o: %.S $(CONFIG) $(Q)echo " AS $@" $(Q)[ -d $(@D) ] || mkdir -p $(@D) $(Q)$(CC) -c -o $@ $(CFLAGS) $< - diff --git a/test/src/test_unit.c b/test/src/test_unit.c index 87d3dbc2b4..1a5f83c1b0 100644 --- a/test/src/test_unit.c +++ b/test/src/test_unit.c @@ -65,48 +65,75 @@ unsigned int mld_rej_eta_c(int32_t *a, unsigned int target, unsigned int offset, void mld_keccakf1600_permute_c(uint64_t *state); #if defined(MLD_USE_NATIVE_FIPS202_X1) -static void print_u64_array(const char *label, const uint64_t *array, - size_t len) +static void keccakf1600_xor_bytes_ref(uint64_t *state, + const unsigned char *data, + unsigned offset, unsigned length) +{ + unsigned i; + + for (i = 0; i < length; i++) + { + unsigned pos = offset + i; + unsigned lane = pos >> 3; + unsigned shift = 8 * (pos & 7); + state[lane] ^= (uint64_t)data[i] << shift; + } +} + +static void keccakf1600_extract_bytes_ref(const uint64_t *state, + unsigned char *data, unsigned offset, + unsigned length) +{ + unsigned i; + + for (i = 0; i < length; i++) + { + unsigned pos = offset + i; + unsigned lane = pos >> 3; + unsigned shift = 8 * (pos & 7); + data[i] = (unsigned char)(state[lane] >> shift); + } +} + +static void print_keccak_state_bytes(const char *label, + const unsigned char *state_bytes, + size_t len) { size_t i; fprintf(stderr, "%s:\n", label); for (i = 0; i < len; i++) { - if (i % 4 == 0) + if (i % sizeof(uint64_t) == 0) { fprintf(stderr, " "); } - fprintf(stderr, "%016llx", (unsigned long long)array[i]); - if (i % 4 == 3) + fprintf(stderr, "%02x", state_bytes[i]); + if (i % sizeof(uint64_t) == sizeof(uint64_t) - 1) { fprintf(stderr, "\n"); } - else - { - fprintf(stderr, " "); - } } - if (len % 4 != 0) + if (len % sizeof(uint64_t) != 0) { fprintf(stderr, "\n"); } } -static int compare_u64_arrays(const uint64_t *a, const uint64_t *b, - unsigned len, const char *test_name) +static int compare_keccak_state_bytes(const unsigned char *got, + const unsigned char *expected, size_t len, + const char *test_name) { - unsigned i; + size_t i; for (i = 0; i < len; i++) { - if (a[i] != b[i]) + if (got[i] != expected[i]) { fprintf(stderr, "FAIL: %s\n", test_name); - fprintf( - stderr, - " First difference at index %u: got=0x%016llx, expected=0x%016llx\n", - i, (unsigned long long)a[i], (unsigned long long)b[i]); - print_u64_array("Got", a, len); - print_u64_array("Expected", b, len); + fprintf(stderr, + " First difference at byte %lu: got=0x%02x, expected=0x%02x\n", + (unsigned long)i, (unsigned)got[i], (unsigned)expected[i]); + print_keccak_state_bytes("Got extracted state", got, len); + print_keccak_state_bytes("Expected extracted state", expected, len); return 0; } } @@ -1016,10 +1043,199 @@ static int test_native_rej_uniform_eta4(void) #ifdef MLD_USE_NATIVE_FIPS202_X1 +struct keccak_x1_boundary_case +{ + unsigned offset; + unsigned length; +}; + +enum +{ + KECCAK_X1_STATE_BYTES = MLD_KECCAK_LANES * sizeof(uint64_t), + KECCAK_X1_GUARD_BYTES = 16, + KECCAK_X1_ALIGNMENT_SLACK = 15, + KECCAK_X1_STATE_GUARD = 0x3c, + KECCAK_X1_OUTPUT_GUARD = 0xa5, +}; + +struct MLD_ALIGN keccak_x1_guarded_state +{ + unsigned char prefix[KECCAK_X1_GUARD_BYTES]; + uint64_t state[MLD_KECCAK_LANES]; + unsigned char suffix[KECCAK_X1_GUARD_BYTES]; +}; + +static const struct keccak_x1_boundary_case keccak_x1_boundary_cases[] = { + {0, 0}, {0, 1}, {0, 7}, {0, 8}, + {0, 9}, {0, 16}, {0, 17}, {1, 1}, + {1, 6}, {1, 7}, {1, 8}, {1, 32}, + {7, 1}, {7, 2}, {7, 8}, {7, 32}, + {8, 1}, {8, 8}, {9, 15}, {176, 16}, + {177, 15}, {184, 8}, {191, 1}, {191, 9}, + {192, 0}, {192, 1}, {192, 8}, {193, 7}, + {199, 1}, {200, 0}, {0, 192}, {0, KECCAK_X1_STATE_BYTES}}; + +static int keccak_x1_state_guards_intact( + const struct keccak_x1_guarded_state *guarded_state) +{ + size_t i; + + for (i = 0; i < KECCAK_X1_GUARD_BYTES; i++) + { + if (guarded_state->prefix[i] != KECCAK_X1_STATE_GUARD || + guarded_state->suffix[i] != KECCAK_X1_STATE_GUARD) + { + return 0; + } + } + return 1; +} + +static int test_keccakf1600_x1_byte_boundaries(void) +{ + size_t i; + unsigned input_alignment; + unsigned output_alignment; + MLD_ALIGN unsigned char + input_storage[KECCAK_X1_GUARD_BYTES + KECCAK_X1_STATE_BYTES + + KECCAK_X1_ALIGNMENT_SLACK + KECCAK_X1_GUARD_BYTES]; + unsigned char input_before[sizeof(input_storage)]; + MLD_ALIGN unsigned char + output_storage[KECCAK_X1_GUARD_BYTES + KECCAK_X1_STATE_BYTES + + KECCAK_X1_ALIGNMENT_SLACK + KECCAK_X1_GUARD_BYTES]; + MLD_ALIGN unsigned char output_ref_storage[sizeof(output_storage)]; + unsigned char *input; + unsigned char *output; + unsigned char *output_ref; + struct keccak_x1_guarded_state state_guarded; + struct keccak_x1_guarded_state state_ref_guarded; + struct keccak_x1_guarded_state state_before_extract; + + for (i = 0; i < sizeof(keccak_x1_boundary_cases) / + sizeof(keccak_x1_boundary_cases[0]); + i++) + { + unsigned offset = keccak_x1_boundary_cases[i].offset; + unsigned length = keccak_x1_boundary_cases[i].length; + + /* The public API permits arbitrary byte alignment for data. The aligned + * storage bases and 16-byte prefix make these exact 1..15 modulo-16 + * alignments while retaining red zones at each end. */ + input_alignment = 1 + (unsigned)(i % KECCAK_X1_ALIGNMENT_SLACK); + output_alignment = 1 + (unsigned)((i * 7) % KECCAK_X1_ALIGNMENT_SLACK); + input = input_storage + KECCAK_X1_GUARD_BYTES + input_alignment; + output = output_storage + KECCAK_X1_GUARD_BYTES + output_alignment; + output_ref = output_ref_storage + KECCAK_X1_GUARD_BYTES + output_alignment; + + memset(input_storage, KECCAK_X1_STATE_GUARD, sizeof(input_storage)); + randombytes(input, KECCAK_X1_STATE_BYTES); + memcpy(input_before, input_storage, sizeof(input_storage)); + memset(output_storage, KECCAK_X1_OUTPUT_GUARD, sizeof(output_storage)); + memset(output_ref_storage, KECCAK_X1_OUTPUT_GUARD, + sizeof(output_ref_storage)); + memset(&state_guarded, KECCAK_X1_STATE_GUARD, sizeof(state_guarded)); + memset(&state_ref_guarded, KECCAK_X1_STATE_GUARD, + sizeof(state_ref_guarded)); + memset(state_guarded.state, 0, KECCAK_X1_STATE_BYTES); + memset(state_ref_guarded.state, 0, KECCAK_X1_STATE_BYTES); + + mld_keccakf1600_xor_bytes(state_guarded.state, input, offset, length); + keccakf1600_xor_bytes_ref(state_ref_guarded.state, input, offset, length); + if (memcmp(input_storage, input_before, sizeof(input_storage)) != 0) + { + fprintf(stderr, + "FAIL: keccakf1600_x1_xor_bytes modified its input buffer\n"); + fprintf(stderr, " Boundary case: offset=%u, length=%u\n", offset, + length); + return 1; + } + if (!keccak_x1_state_guards_intact(&state_guarded)) + { + fprintf(stderr, + "FAIL: keccakf1600_x1_xor_bytes wrote outside its state\n"); + fprintf(stderr, " Boundary case: offset=%u, length=%u\n", offset, + length); + return 1; + } + memcpy(&state_before_extract, &state_guarded, sizeof(state_guarded)); + + /* Extracting the complete logical state verifies both the updated range + * and that xor_bytes left every byte outside it unchanged. */ + mld_keccakf1600_extract_bytes(state_guarded.state, output, 0, + KECCAK_X1_STATE_BYTES); + keccakf1600_extract_bytes_ref(state_ref_guarded.state, output_ref, 0, + KECCAK_X1_STATE_BYTES); + if (!compare_keccak_state_bytes(output_storage, output_ref_storage, + sizeof(output_storage), + "keccakf1600_x1_xor_bytes boundaries")) + { + fprintf(stderr, " Boundary case: offset=%u, length=%u\n", offset, + length); + return 1; + } + if (!keccak_x1_state_guards_intact(&state_guarded)) + { + fprintf(stderr, + "FAIL: keccakf1600_x1_extract_bytes wrote outside its state\n"); + fprintf(stderr, " Boundary case: offset=%u, length=%u\n", offset, + length); + return 1; + } + if (memcmp(&state_guarded, &state_before_extract, sizeof(state_guarded)) != + 0) + { + fprintf(stderr, + "FAIL: keccakf1600_x1_extract_bytes modified its state\n"); + fprintf(stderr, " Boundary case: offset=%u, length=%u\n", offset, + length); + return 1; + } + + /* Compare complete guarded buffers so zero-length and partial calls also + * detect any write beyond the requested range. */ + memset(output_storage, KECCAK_X1_OUTPUT_GUARD, sizeof(output_storage)); + memset(output_ref_storage, KECCAK_X1_OUTPUT_GUARD, + sizeof(output_ref_storage)); + mld_keccakf1600_extract_bytes(state_guarded.state, output, offset, length); + keccakf1600_extract_bytes_ref(state_ref_guarded.state, output_ref, offset, + length); + if (!compare_keccak_state_bytes(output_storage, output_ref_storage, + sizeof(output_storage), + "keccakf1600_x1_extract_bytes boundaries")) + { + fprintf(stderr, " Boundary case: offset=%u, length=%u\n", offset, + length); + return 1; + } + if (!keccak_x1_state_guards_intact(&state_guarded)) + { + fprintf(stderr, + "FAIL: keccakf1600_x1_extract_bytes wrote outside its state\n"); + fprintf(stderr, " Boundary case: offset=%u, length=%u\n", offset, + length); + return 1; + } + if (memcmp(&state_guarded, &state_before_extract, sizeof(state_guarded)) != + 0) + { + fprintf(stderr, + "FAIL: keccakf1600_x1_extract_bytes modified its state\n"); + fprintf(stderr, " Boundary case: offset=%u, length=%u\n", offset, + length); + return 1; + } + } + + return 0; +} + static int test_keccakf1600_permute(void) { int ret = 1; int i; + unsigned char input[MLD_KECCAK_LANES * sizeof(uint64_t)]; + unsigned char output[MLD_KECCAK_LANES * sizeof(uint64_t)]; + unsigned char output_ref[MLD_KECCAK_LANES * sizeof(uint64_t)]; MLD_ALLOC(state, uint64_t, MLD_KECCAK_LANES, NULL); MLD_ALLOC(state_ref, uint64_t, MLD_KECCAK_LANES, NULL); @@ -1030,14 +1246,20 @@ static int test_keccakf1600_permute(void) for (i = 0; i < NUM_RANDOM_TESTS; i++) { - randombytes((uint8_t *)state, MLD_KECCAK_LANES * sizeof(uint64_t)); - memcpy(state_ref, state, MLD_KECCAK_LANES * sizeof(uint64_t)); + randombytes(input, sizeof(input)); + memset(state, 0, MLD_KECCAK_LANES * sizeof(uint64_t)); + memset(state_ref, 0, MLD_KECCAK_LANES * sizeof(uint64_t)); + + mld_keccakf1600_xor_bytes(state, input, 0, sizeof(input)); + keccakf1600_xor_bytes_ref(state_ref, input, 0, sizeof(input)); mld_keccakf1600_permute(state); mld_keccakf1600_permute_c(state_ref); - CHECK(compare_u64_arrays(state, state_ref, MLD_KECCAK_LANES, - "keccakf1600_permute")); + mld_keccakf1600_extract_bytes(state, output, 0, sizeof(output)); + keccakf1600_extract_bytes_ref(state_ref, output_ref, 0, sizeof(output_ref)); + CHECK(compare_keccak_state_bytes(output, output_ref, sizeof(output), + "keccakf1600_permute")); } ret = 0; @@ -1194,6 +1416,7 @@ static int test_backend_units(void) #endif /* !MLD_CONFIG_NO_KEYPAIR_API */ #ifdef MLD_USE_NATIVE_FIPS202_X1 + CHECK(test_keccakf1600_x1_byte_boundaries() == 0); CHECK(test_keccakf1600_permute() == 0); #endif @@ -1218,6 +1441,18 @@ static int test_backend_units(void) #if !defined(MLD_CONFIG_NO_SIGN_API) /* Test that eager and lazy polyvec init+get produce the same results */ +/* This test keeps the large ML-DSA-87 workspace static to avoid test harness + * stack pressure when the Zephyr FIPS202 backend is enabled. */ +#define TEST_STATIC_ALLOC(v, T, N) \ + static MLD_ALIGN T mld_static_##v[N]; \ + T *v = mld_static_##v +#define TEST_STATIC_FREE(v) \ + do \ + { \ + mld_zeroize(mld_static_##v, sizeof(mld_static_##v)); \ + (v) = NULL; \ + } while (0) + static int test_polyvec_lazy_eager(void) { int ret = 1; @@ -1225,45 +1460,30 @@ static int test_polyvec_lazy_eager(void) #if !defined(MLD_CONFIG_NO_KEYPAIR_API) || !defined(MLD_CONFIG_NO_VERIFY_API) unsigned int j; #endif - MLD_ALLOC(packed_s1, uint8_t, MLDSA_L *MLDSA_POLYETA_PACKEDBYTES, NULL); - MLD_ALLOC(packed_s2, uint8_t, MLDSA_K *MLDSA_POLYETA_PACKEDBYTES, NULL); - MLD_ALLOC(packed_t0, uint8_t, MLDSA_K *MLDSA_POLYT0_PACKEDBYTES, NULL); - MLD_ALLOC(rho, uint8_t, MLDSA_SEEDBYTES, NULL); - MLD_ALLOC(rhoprime, uint8_t, MLDSA_CRHBYTES, NULL); - MLD_ALLOC(s1_eager, mld_sk_s1hat_eager, 1, NULL); - MLD_ALLOC(s1_lazy, mld_sk_s1hat_lazy, 1, NULL); - MLD_ALLOC(s2_eager, mld_sk_s2hat_eager, 1, NULL); - MLD_ALLOC(s2_lazy, mld_sk_s2hat_lazy, 1, NULL); - MLD_ALLOC(t0_eager, mld_sk_t0hat_eager, 1, NULL); - MLD_ALLOC(t0_lazy, mld_sk_t0hat_lazy, 1, NULL); - MLD_ALLOC(y_eager, mld_yvec_eager, 1, NULL); - MLD_ALLOC(y_lazy, mld_yvec_lazy, 1, NULL); - MLD_ALLOC(poly_eager, mld_poly, 1, NULL); - MLD_ALLOC(poly_lazy, mld_poly, 1, NULL); - MLD_ALLOC(mat_eager, mld_polymat_eager, 1, NULL); - MLD_ALLOC(mat_lazy, mld_polymat_lazy, 1, NULL); -#if !defined(MLD_CONFIG_NO_KEYPAIR_API) || !defined(MLD_CONFIG_NO_VERIFY_API) - MLD_ALLOC(v, mld_polyvecl, 1, NULL); -#endif - MLD_ALLOC(scratch_eager, mld_polyvecl, 1, NULL); - MLD_ALLOC(scratch_lazy, mld_polyvecl, 1, NULL); - MLD_ALLOC(w_eager, mld_polyveck, 1, NULL); - MLD_ALLOC(w_lazy, mld_polyveck, 1, NULL); - - if (packed_s1 == NULL || packed_s2 == NULL || packed_t0 == NULL || - rho == NULL || rhoprime == NULL || s1_eager == NULL || s1_lazy == NULL || - s2_eager == NULL || s2_lazy == NULL || t0_eager == NULL || - t0_lazy == NULL || y_eager == NULL || y_lazy == NULL || - poly_eager == NULL || poly_lazy == NULL || mat_eager == NULL || - mat_lazy == NULL || + TEST_STATIC_ALLOC(packed_s1, uint8_t, MLDSA_L *MLDSA_POLYETA_PACKEDBYTES); + TEST_STATIC_ALLOC(packed_s2, uint8_t, MLDSA_K *MLDSA_POLYETA_PACKEDBYTES); + TEST_STATIC_ALLOC(packed_t0, uint8_t, MLDSA_K *MLDSA_POLYT0_PACKEDBYTES); + TEST_STATIC_ALLOC(rho, uint8_t, MLDSA_SEEDBYTES); + TEST_STATIC_ALLOC(rhoprime, uint8_t, MLDSA_CRHBYTES); + TEST_STATIC_ALLOC(s1_eager, mld_sk_s1hat_eager, 1); + TEST_STATIC_ALLOC(s1_lazy, mld_sk_s1hat_lazy, 1); + TEST_STATIC_ALLOC(s2_eager, mld_sk_s2hat_eager, 1); + TEST_STATIC_ALLOC(s2_lazy, mld_sk_s2hat_lazy, 1); + TEST_STATIC_ALLOC(t0_eager, mld_sk_t0hat_eager, 1); + TEST_STATIC_ALLOC(t0_lazy, mld_sk_t0hat_lazy, 1); + TEST_STATIC_ALLOC(y_eager, mld_yvec_eager, 1); + TEST_STATIC_ALLOC(y_lazy, mld_yvec_lazy, 1); + TEST_STATIC_ALLOC(poly_eager, mld_poly, 1); + TEST_STATIC_ALLOC(poly_lazy, mld_poly, 1); + TEST_STATIC_ALLOC(mat_eager, mld_polymat_eager, 1); + TEST_STATIC_ALLOC(mat_lazy, mld_polymat_lazy, 1); #if !defined(MLD_CONFIG_NO_KEYPAIR_API) || !defined(MLD_CONFIG_NO_VERIFY_API) - v == NULL || + TEST_STATIC_ALLOC(v, mld_polyvecl, 1); #endif - scratch_eager == NULL || scratch_lazy == NULL || w_eager == NULL || - w_lazy == NULL) - { - goto cleanup; - } + TEST_STATIC_ALLOC(scratch_eager, mld_polyvecl, 1); + TEST_STATIC_ALLOC(scratch_lazy, mld_polyvecl, 1); + TEST_STATIC_ALLOC(w_eager, mld_polyveck, 1); + TEST_STATIC_ALLOC(w_lazy, mld_polyveck, 1); for (t = 0; t < NUM_RANDOM_TESTS_SLOW; t++) { @@ -1373,33 +1593,34 @@ static int test_polyvec_lazy_eager(void) ret = 0; -cleanup: - MLD_FREE(w_lazy, mld_polyveck, 1, NULL); - MLD_FREE(w_eager, mld_polyveck, 1, NULL); - MLD_FREE(scratch_lazy, mld_polyvecl, 1, NULL); - MLD_FREE(scratch_eager, mld_polyvecl, 1, NULL); + TEST_STATIC_FREE(w_lazy); + TEST_STATIC_FREE(w_eager); + TEST_STATIC_FREE(scratch_lazy); + TEST_STATIC_FREE(scratch_eager); #if !defined(MLD_CONFIG_NO_KEYPAIR_API) || !defined(MLD_CONFIG_NO_VERIFY_API) - MLD_FREE(v, mld_polyvecl, 1, NULL); + TEST_STATIC_FREE(v); #endif - MLD_FREE(mat_lazy, mld_polymat_lazy, 1, NULL); - MLD_FREE(mat_eager, mld_polymat_eager, 1, NULL); - MLD_FREE(poly_lazy, mld_poly, 1, NULL); - MLD_FREE(poly_eager, mld_poly, 1, NULL); - MLD_FREE(y_lazy, mld_yvec_lazy, 1, NULL); - MLD_FREE(y_eager, mld_yvec_eager, 1, NULL); - MLD_FREE(t0_lazy, mld_sk_t0hat_lazy, 1, NULL); - MLD_FREE(t0_eager, mld_sk_t0hat_eager, 1, NULL); - MLD_FREE(s2_lazy, mld_sk_s2hat_lazy, 1, NULL); - MLD_FREE(s2_eager, mld_sk_s2hat_eager, 1, NULL); - MLD_FREE(s1_lazy, mld_sk_s1hat_lazy, 1, NULL); - MLD_FREE(s1_eager, mld_sk_s1hat_eager, 1, NULL); - MLD_FREE(rhoprime, uint8_t, MLDSA_CRHBYTES, NULL); - MLD_FREE(rho, uint8_t, MLDSA_SEEDBYTES, NULL); - MLD_FREE(packed_t0, uint8_t, MLDSA_K *MLDSA_POLYT0_PACKEDBYTES, NULL); - MLD_FREE(packed_s2, uint8_t, MLDSA_K *MLDSA_POLYETA_PACKEDBYTES, NULL); - MLD_FREE(packed_s1, uint8_t, MLDSA_L *MLDSA_POLYETA_PACKEDBYTES, NULL); + TEST_STATIC_FREE(mat_lazy); + TEST_STATIC_FREE(mat_eager); + TEST_STATIC_FREE(poly_lazy); + TEST_STATIC_FREE(poly_eager); + TEST_STATIC_FREE(y_lazy); + TEST_STATIC_FREE(y_eager); + TEST_STATIC_FREE(t0_lazy); + TEST_STATIC_FREE(t0_eager); + TEST_STATIC_FREE(s2_lazy); + TEST_STATIC_FREE(s2_eager); + TEST_STATIC_FREE(s1_lazy); + TEST_STATIC_FREE(s1_eager); + TEST_STATIC_FREE(rhoprime); + TEST_STATIC_FREE(rho); + TEST_STATIC_FREE(packed_t0); + TEST_STATIC_FREE(packed_s2); + TEST_STATIC_FREE(packed_s1); return ret; } +#undef TEST_STATIC_FREE +#undef TEST_STATIC_ALLOC #endif /* !MLD_CONFIG_NO_SIGN_API */ /* Prototype for a re-#define'd main, to satisfy -Wmissing-prototypes. */ diff --git a/test/zephyr/app/CMakeLists.txt b/test/zephyr/app/CMakeLists.txt index bca5ba58bb..c732d61c26 100644 --- a/test/zephyr/app/CMakeLists.txt +++ b/test/zephyr/app/CMakeLists.txt @@ -13,15 +13,17 @@ project(mldsa_native_zephyr) # ZEPHYR_NATIVE_ROOT, space separated # ZEPHYR_TEST_CFLAGS - the test binary's CFLAGS (see below); includes the # parameter set (-DMLD_CONFIG_PARAMETER_SET=...) +# ZEPHYR_ABICHECK - build the standalone ABI checker sources without the +# normal mldsa amalgamation set(R ${ZEPHYR_NATIVE_ROOT}) separate_arguments(_test_srcs UNIX_COMMAND "${ZEPHYR_TEST_SRCS}") list(TRANSFORM _test_srcs PREPEND ${R}/) -target_sources(app PRIVATE - ${R}/mldsa/mldsa_native.c - ${_test_srcs} -) +target_sources(app PRIVATE ${_test_srcs}) +if(NOT ZEPHYR_ABICHECK) + target_sources(app PRIVATE ${R}/mldsa/mldsa_native.c) +endif() target_include_directories(app PRIVATE ${R}/mldsa @@ -93,14 +95,14 @@ set_property(SOURCE ${R}/mldsa/mldsa_native.c ${_test_srcs} ${_zephyr_shim} # Optional native FIPS202 backend (e.g. Armv8.1-M MVE on Cortex-M55). The # monolithic mldsa_native.c already includes the backend C sources; its # assembly counterpart comes from mldsa_native_asm.S. -if(ZEPHYR_FIPS202_BACKEND) +if(ZEPHYR_FIPS202_BACKEND AND NOT ZEPHYR_ABICHECK) target_sources(app PRIVATE ${R}/mldsa/mldsa_native_asm.S) target_compile_definitions(app PRIVATE MLD_CONFIG_USE_NATIVE_BACKEND_FIPS202 "MLD_CONFIG_FIPS202_BACKEND_FILE=\"${ZEPHYR_FIPS202_BACKEND}\"") endif() -# Each test brings its own int main(void); rename it so the selected Zephyr +# Each test brings its own main(); rename it so the selected Zephyr # shim owns main() and can return the test's exit code through the target's # runner. Only the test entrypoint in ZEPHYR_TEST_SRCS defines main(); the # support sources (notrandombytes, hal) don't, so applying the define to all is diff --git a/test/zephyr/exec_wrapper.py b/test/zephyr/exec_wrapper.py index 6e339da7d9..ab66108188 100755 --- a/test/zephyr/exec_wrapper.py +++ b/test/zephyr/exec_wrapper.py @@ -15,6 +15,7 @@ binpath = sys.argv[1] args = sys.argv[2:] machine = os.environ.get("QEMU_MACHINE", "mps3-an547") +timeout = float(os.environ.get("QEMU_TIMEOUT", "300")) semihosting_args = [binpath] + args semihosting_config = "enable=on," + ",".join(f"arg={a}" for a in semihosting_args) @@ -32,7 +33,9 @@ binpath, ] -result = subprocess.run(qemu_cmd, encoding="utf-8", capture_output=True, timeout=300) +result = subprocess.run( + qemu_cmd, encoding="utf-8", capture_output=True, timeout=timeout +) sys.stdout.write(result.stdout) if result.returncode != 0: sys.stderr.write(result.stderr) diff --git a/test/zephyr/platform.mk b/test/zephyr/platform.mk index 03b863ff8c..ecb3353914 100644 --- a/test/zephyr/platform.mk +++ b/test/zephyr/platform.mk @@ -33,8 +33,12 @@ ZEPHYR_BOARD_mps3-an547 := mps3/corstone300/an547 ZEPHYR_QEMU_mps3-an547 := mps3-an547 # Cortex-M55 ZEPHYR_BOARD_nucleo-n657x0-q := nucleo_n657x0_q # Cortex-M55 (hardware) -ZEPHYR_FIPS202_BACKEND_mps3-an547 := fips202/native/armv81m/mve.h -ZEPHYR_FIPS202_BACKEND_nucleo-n657x0-q := fips202/native/armv81m/mve.h +ZEPHYR_FIPS202_BACKEND_mps3-an547 := fips202/native/armv81m/mve_x1.h +ZEPHYR_FIPS202_BACKEND_nucleo-n657x0-q := fips202/native/armv81m/mve_x1.h + +# Zephyr owns target selection, so do not infer its ABI from make's host ARCH. +ZEPHYR_ABICHECK_ARCH_mps3-an547 := armv81m +ABICHECK_ARCH := $(strip $(ZEPHYR_ABICHECK_ARCH_$(ZEPHYR_TARGET))) ZEPHYR_TARGETS := mps2-an385 mps2-an386 mps2-an500 mps2-an521 mps3-an547 nucleo-n657x0-q @@ -55,12 +59,27 @@ endif # file to source prerequisites (it is: the top-level Makefile includes us first). OPT ?= 0 +# Shrink the test iteration counts (the sources default them higher, sized for +# native hardware): QEMU is far slower. Keep these defaults ahead of the build +# key so command-line overrides invalidate binaries built with different counts. +NTESTS ?= 3 +NUM_RANDOM_TESTS ?= 100 + +# Forward the QEMU execution deadline to exec_wrapper.py. Direct wrapper +# invocations use the same default when the variable is absent. +QEMU_TIMEOUT ?= 300 +export QEMU_TIMEOUT + # Native backends are an OPT=1 feature (an547 builds the Armv8.1-M MVE backend). ZEPHYR_FIPS202_BACKEND := $(if $(filter 1,$(OPT)),$(strip $(ZEPHYR_FIPS202_BACKEND_$(ZEPHYR_TARGET)))) ZEPHYR_APP := $(PLATFORM_PATH)/app ZEPHYR_BUILD_DIR := $(BUILD_DIR)/zephyr/$(ZEPHYR_TARGET) ZEPHYR_ACTIVE_TARGET := $(BUILD_DIR)/zephyr/.active-target +ZEPHYR_BUILD_KEY := $(ZEPHYR_TARGET)|OPT=$(OPT) +ZEPHYR_BUILD_KEY := $(ZEPHYR_BUILD_KEY)|FIPS202=$(ZEPHYR_FIPS202_BACKEND) +ZEPHYR_BUILD_KEY := $(ZEPHYR_BUILD_KEY)|NTESTS=$(NTESTS) +ZEPHYR_BUILD_KEY := $(ZEPHYR_BUILD_KEY)|NUM_RANDOM_TESTS=$(NUM_RANDOM_TESTS) ZEPHYR_APP_INPUTS := \ $(ZEPHYR_APP)/CMakeLists.txt \ $(ZEPHYR_APP)/Kconfig \ @@ -79,14 +98,15 @@ ZEPHYR_TARGET_CMAKE_ARGS := $(if $(ZEPHYR_IS_NUCLEO_N657X0_Q),\ # Test binary output paths are shared across ZEPHYR_TARGET values, while the # CMake build directory is target-specific. Keep a lightweight marker containing -# the last requested target, and only touch it when the target changes. Binaries -# depending on this marker are then rebuilt after a target switch without -# forcing a clean rebuild when the target is unchanged. +# the last requested build configuration, and only touch it when that +# configuration changes. Binaries depending on this marker are then rebuilt +# after a target, backend, or test-count switch without forcing a clean rebuild +# when the configuration is unchanged. .PHONY: zephyr_target_marker_force $(ZEPHYR_ACTIVE_TARGET): zephyr_target_marker_force $(Q)[ -d $(@D) ] || mkdir -p $(@D) - $(Q)if [ ! -f $@ ] || [ "$$(cat $@)" != "$(ZEPHYR_TARGET)" ]; then \ - echo "$(ZEPHYR_TARGET)" > $@; \ + $(Q)if [ ! -f $@ ] || [ "$$(cat $@)" != "$(ZEPHYR_BUILD_KEY)" ]; then \ + echo "$(ZEPHYR_BUILD_KEY)" > $@; \ fi # Per-binary CMake build dir, keyed on $(notdir $@) so binaries build in @@ -97,11 +117,10 @@ ZEPHYR_OUT = $(ZEPHYR_BUILD_DIR)/$(notdir $@) # fit comfortably within the Zephyr main-thread stack (see app/prj.conf). CFLAGS += -DMLD_CONFIG_REDUCE_RAM -# Shrink the test iteration counts (the sources default them higher, sized for -# native hardware): QEMU is far slower. On CFLAGS so they forward below. -CFLAGS += -DNTESTS=3 \ +# Put the configurable test counts on CFLAGS so they forward below. +CFLAGS += -DNTESTS=$(NTESTS) \ -DMLD_BENCHMARK_NTESTS=10 -DMLD_BENCHMARK_NITERATIONS=10 -DMLD_BENCHMARK_NWARMUP=10 \ - -DNUM_RANDOM_TESTS=100 + -DNUM_RANDOM_TESTS=$(NUM_RANDOM_TESTS) # The binary's CFLAGS, forwarded to the CMake build (which applies them to the # mldsa amalgamation and test sources alike). '=' not ':=', so the recipe-time @@ -120,6 +139,7 @@ ZEPHYR_TEST_CFLAGS = $(subst \",\\\",$(patsubst -Imldsa,-I$(abspath mldsa),$(CFL ZEPHYR_CMAKE_ENV := env -u CFLAGS -u CXXFLAGS -u CPPFLAGS -u LDFLAGS CUSTOM_BUILD = \ + $(if $(CUSTOM_BUILD_ABICHECK),$(if $(ABICHECK_ARCH),,$(error ABI checking is not supported for ZEPHYR_TARGET=$(ZEPHYR_TARGET)))) \ echo " ZEPHYR $(ZEPHYR_TARGET): $(notdir $@)" && \ $(ZEPHYR_CMAKE_ENV) cmake -GNinja -S $(ZEPHYR_APP) -B $(ZEPHYR_OUT) \ -DBOARD=$(ZEPHYR_BOARD) \ @@ -127,6 +147,7 @@ CUSTOM_BUILD = \ -DZEPHYR_TEST_SRCS="$(strip $(TEST_SRCS))" \ -DZEPHYR_TEST_CFLAGS="$(ZEPHYR_TEST_CFLAGS)" \ -DZEPHYR_FIPS202_BACKEND=$(ZEPHYR_FIPS202_BACKEND) \ + -DZEPHYR_ABICHECK=$(if $(CUSTOM_BUILD_ABICHECK),ON,OFF) \ $(if $(ZEPHYR_FIPS202_BACKEND),-DCONFIG_FIPS202_MVE_BACKEND=y) \ $(ZEPHYR_TARGET_CMAKE_ARGS) \ -DUSER_CACHE_DIR=$(abspath $(ZEPHYR_OUT)/.cache) \ @@ -134,12 +155,20 @@ CUSTOM_BUILD = \ $(ZEPHYR_CMAKE_ENV) cmake --build $(ZEPHYR_OUT) >/dev/null && \ cp $(ZEPHYR_OUT)/zephyr/zephyr.elf $@ +# Track every production assembly source included by the native assembly +# amalgamation so changing a source rebuilds a custom Zephyr application even +# when the generated include list itself is unchanged. +ZEPHYR_NATIVE_ASM_INPUTS := mldsa/mldsa_native_asm.S \ + $(wildcard mldsa/src/fips202/native/armv81m/src/*.S) + # A custom build links the test sources directly rather than from objects, so # nothing otherwise makes the bins depend on the Zephyr app inputs or the # active-target marker. components.mk attaches CUSTOM_BUILD_DEPS to every test -# binary (in its CUSTOM_BUILD branch), so a CMakeLists/shim/overlay edit or a -# target switch forces a rebuild. Set here (before components.mk is included). -CUSTOM_BUILD_DEPS := $(ZEPHYR_ACTIVE_TARGET) $(ZEPHYR_APP_INPUTS) +# binary (in its CUSTOM_BUILD branch), so an application input, native assembly +# input, target, backend, or test-count change forces a rebuild. Set here before +# components.mk is included. +CUSTOM_BUILD_DEPS := $(ZEPHYR_ACTIVE_TARGET) $(ZEPHYR_APP_INPUTS) \ + $(if $(ZEPHYR_FIPS202_BACKEND),$(ZEPHYR_NATIVE_ASM_INPUTS)) ifeq ($(ZEPHYR_IS_NUCLEO_N657X0_Q),) EXEC_WRAPPER := $(abspath $(PLATFORM_PATH)/exec_wrapper.py)